我有一个MySQL数据表items
,如下所示:
+----+-------+----------+----------+
| id | value | discount | type |
+----+-------+----------+----------+
| 1 | 20 | 1 | hardware |
| 2 | 40 | 0 | hardware |
| 3 | 60 | 1 | software |
| 4 | 30 | 1 | software |
+----+-------+----------+----------+
当discount
为1时,这意味着有效value
为零。
我想取回以下结果
+----------+----+
| software | 0 |
| hardware | 40 |
+----------+----+
我知道如何在多个查询中执行此操作。
SELECT type, SUM(value) from items where discount != 1 group by type
给了我
+----------+----+
| hardware | 40 |
+----------+----+
然后
SELECT type, 0 from items where discount = 1 group by type
给了我
+----------+----+
| software | 0 |
| hardware | 0 |
+----------+----+
然后我需要加入这两个表来获得最终结果。
我的问题是:
有一种方法可以用1个查询来完成相同的结果吗?
谢谢。
答案 0 :(得分:2)
我认为这就是你想要的
SELECT type, SUM(if(discount =1, 0,value)) from items group by type