国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

已解決 請(qǐng)各位大佬給想一下這樣的SQL語句該怎么寫

安穩(wěn)

問題描述

有兩個(gè)表一個(gè)是table_order訂單表還有一個(gè)table_gift贈(zèng)送禮物表,這兩個(gè)表里都有字段叫pay_amount和user_id,需求就是我想根據(jù)這兩個(gè)表pay_amount相加的和從大到小排序查詢出user_id的結(jié)果集合, 就是類似于消費(fèi)最高的用戶排名,這樣的SQL該怎么寫啊

為此你搜索到了哪些方案及不適用的原因

結(jié)合CHATGPT 和其他搜索用SQL子查詢 就能實(shí)現(xiàn)

sql
SELECT user_id, SUM(pay_amount) AS total_amount
FROM (
    SELECT user_id, pay_amount FROM table_order
    UNION ALL
    SELECT user_id, pay_amount FROM table_gift
) AS combined_table
GROUP BY user_id
ORDER BY total_amount DESC;
833 2 0
2個(gè)回答

Dalong

order by pay_amount desc

  • 暫無評(píng)論
小W
  1. 首選業(yè)務(wù)關(guān)系:

    如果兩個(gè)表user_id不是對(duì)應(yīng)關(guān)系,或者說table_gift表中的user_id可能沒有在table_order表中出現(xiàn)。

  2. 查詢兩張表中每個(gè)user_id的總金額

    select user_id, sum(pay_amount) as a from TABLE group by user_id;

  3. 避免兩個(gè)表數(shù)據(jù)重復(fù),使用union all聯(lián)合查詢

    select user_id, sum(pay_amount) as a from TABLE1 group by user_id union all select user_id, sum(pay_amount) as a from TABLE2 group by user_id;

  4. 從聯(lián)合查詢的結(jié)果查詢并排序

    select user_id, sum(a) as sum_price from (上面的聯(lián)合查詢語句) group by user_id order by sum_price desc;

思路可以根據(jù)業(yè)務(wù)邏輯再優(yōu)化。

年代過于久遠(yuǎn),無法發(fā)表回答
??