具有日期范围的不同列中的SQL计数值

时间:2017-08-05 20:26:41

标签: mysql sql

我知道如何计算不同列和日期范围中的值,但不是在我必须同时执行这两项操作时。

我有这个示例值的表:

Number | occurrences
  03   |     1
  04   |     2
  05   |     2
  06   |     2
  07   |     2
  08   |     2
  09   |     1

现在我希望得到这样的结果用于选择数据范围(例如2017-08-02至2017-08-03):

{{1}}

如何在一个SQL查询中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用子查询,然后使用普通GROUP BY

SELECT num, COUNT(*) AS Occurences
FROM (
  SELECT date_col, Number1 AS num
  FROM table_name
  UNION ALL
  SELECT date_col, Number2 
  FROM table_name
  ...
) AS sub
-- WHERE date_col BETWEEN ... AND  ... --specific range
GROUP BY num
ORDER BY num;

无论如何,你应该重新考虑你的架构设计。