mysql - 如何在mysql中对同一个表和sum(值)使用联合查询?

标签 mysql union

我有一张 table :

OC  Period(MM/YYYY) Ing
CHO 04/01/2016      100
CHO 04/01/2016      200
CHO 04/01/2016      0
CFE 04/01/2016      400
CFE 04/01/2016      350
CFE 04/01/2016      0

我有一个像这样的 SQL 查询:

  (SELECT OC,Ing FROM contacts c where ing > 0)
  UNION ALL
  (SELECT OC,Sum(Ing) FROM contacts c where ing = 0 Group by OC)

我想要得到这样的结果:

Ref Period(MM/YYYY) Ing
CHO 04/01/2016      100
CHO 04/01/2016      200
CHO 04/01/2016      300
CFE 04/01/2016      400
CFE 04/01/2016      350
CFE 04/01/2016      750

最佳答案

(SELECT c.OC, c.Period, c.Ing FROM contacts c where c.ing > 0)
UNION ALL
(SELECT c.OC, c.Period, Sum(c.Ing) AS Ing FROM contacts c Group by c.OC, c.Period)

如果需要对输出进行排序,可以将其包装在另一个 select from 语句中

关于mysql - 如何在mysql中对同一个表和sum(值)使用联合查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513895/

相关文章:

mysql - 在 SQL 查询中正确转义 QUOTE 字符

mysql - Laravel,多对多表中具有属性的产品

mysql - 使用 SQL 确定文本字段的字数统计

mysql - 如何在UNION查询中的两个表中使用where条件?

mysql - 错误代码: 1292 - Truncated Incorrect DOUBLE value: '-'

mysql - 更改 HTML 列 MySQL 中的图像子域字符串

MySQL - 联合和排序/排序行

mysql - 将列转为行 SQL

sql - 在PostgreSQL(可能还有其他引擎)中,为什么UNION语句将NULL值视为相同,而UNIQUE约束却不这样呢?