8

次のテーブル要素があります。テーブルを再現するクエリを実行する方法はありますが、一番下に col2 の合計を示す余分な行があります

Col1  | col2  
---------------
Water |  22  
water |   3      
water |   5      
Air   |  10      
Earth |   3       
Air   |   5    
4

3 に答える 3

12

なぜそれが必要なのかわかりませんが、これを試してみてください:

SELECT Col1, Col2 FROM tableName
UNION
SELECT 'SUM' as Col1, SUM(Col2) Col2 FROM tableName
于 2012-04-06T01:37:06.623 に答える
4
insert into table_name(col2) (select sum(col2) from table_name) as a

これが機能するかどうか教えてください。

于 2012-04-06T04:44:38.887 に答える
3
select IFNULL(col1,'SUM') col1,sumcol2 col2
from (select col1,col2,sum(col2) sumcol2
from summation_trick
group by col1,col2
with rollup) B
where (col1 is null and col2 is null)
or (col1 is not null and col2 is not null);

これがロードされたデータです

mysql> use junk
Database changed
mysql> drop table if exists summation_trick;
Query OK, 0 rows affected (0.04 sec)

mysql> create table summation_trick
    -> (
    ->     col1 varchar(20),
    ->     col2 int
    -> );
Query OK, 0 rows affected (0.09 sec)

mysql> insert into summation_trick values
    -> ('Water',22  ),('water', 3  ),
    -> ('water', 5  ),('Air'  ,10  ),
    -> ('Earth', 3  ),('Air'  , 5  );
Query OK, 6 rows affected (0.05 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql>

ここに実行されたクエリがあります

mysql> select IFNULL(col1,'SUM') col1,sumcol2
    -> from (select col1,col2,sum(col2) sumcol2
    -> from summation_trick
    -> group by col1,col2
    -> with rollup) B
    -> where (col1 is null and col2 is null)
    -> or (col1 is not null and col2 is not null);
+-------+---------+
| col1  | sumcol2 |
+-------+---------+
| Air   |       5 |
| Air   |      10 |
| Earth |       3 |
| water |       3 |
| water |       5 |
| Water |      22 |
| SUM   |      48 |
+-------+---------+
7 rows in set (0.00 sec)

mysql>
于 2012-04-06T05:00:46.497 に答える