1

2つのテーブルtable1と
table2table1があります 。idamount1394 2 897 2 345 3 123 table2:
id amount 2 876 3 890 3 876 4908table3 を生成する必要があります。2つのテーブルとSUMIDを賢く結合し、上位30の金額ホルダーを表示します。 表3 : ID量 2 2118 3 1889 4908 1394



















4

2 に答える 2

3

次の方法でデータを取得できます。

select table3.id, SUM (table3.amount) AS amount
FROM 
(SELECT * FROM table1 UNION ALL SELECT * FROM table2) table3 
GROUP BY table3.id 

上記のデータを使用してテーブルを作成する場合は、次のように実行できます。

CREATE TABLE new_table select table3.id, SUM (table3.amount) AS amount
                       FROM 
                       (SELECT * FROM table1 UNION ALL SELECT * FROM table2) table3 
                       GROUP BY table3.id ;
于 2012-10-07T09:52:00.483 に答える
0

このクエリを使用してみてください

SELECT a.id, SUM(a.amount)
FROM (
SELECT * FROM table1
UNION
SELECT * FROM table2) AS a
GROUP BY a.id
ORDER BY SUM(a.amount)
LIMIT 30 DESC;

上記のクエリは結果を生成します。新しいテーブルを作成するには、次のように使用します

CREATE TABLE table3(
    SELECT a.id, SUM(a.amount)
    FROM (
    SELECT * FROM table1
    UNION
    SELECT * FROM table2) AS a
    GROUP BY a.id
    ORDER BY SUM(a.amount)
    LIMIT 30 DESC);

お役に立てれば...

于 2012-10-07T09:56:06.713 に答える