【发布时间】:2020-03-04 09:28:04
【问题描述】:
目前我使用 MySQL - 但很快就会迁移到 SQL Server - 所以两者都可以解决问题!
我有一个像(候选表)这样的数据库架构:
ID int PRIMARYKEY
intern date
name varchar(255)
表格看起来像:
| ID | intern | name |
+------------+-----------------+-----------+
| 1 | '2020-01-02' | Mike |
| 42 | '2020-01-05' | Nora |
| 21 | '2020-01-08' | Iris |
| 331 | '2020-01-12' | Caro |
以及该表中的其他一些不相关的列。
我想按周计算所有实习生日期。这适用于:
SELECT
WEEK(intern) + 1 AS KW, COUNT(intern) AS counts
FROM
epunkt_sourcing.candidate
WHERE
WEEK(intern) IS NOT NULL AND YEAR(intern) = 2020
GROUP BY
KW
ORDER BY
KW;
结果是这样的:
| KW | counts |
+-----------+-----------------+
| 1 | 2 |
| 2 | 19 |
| 3 | 18 |
| 4 | 21 |
我还想要按周累积的计数,有机会求和吗?
| KW | counts | cumulated |
+-----------+-----------------+-------------+
| 1 | 2 | 2 |
| 2 | 19 | 21 |
| 3 | 18 | 39 |
| 4 | 21 | 60 |
【问题讨论】:
-
MySQL 还是 SQL Server?你已经标记了两者?
-
我目前使用 mysql - 但在接下来的几周内迁移到 sql server - 所以两者都适合解决方案
-
目前我使用 MySQL 什么版本?这对您的问题至关重要。
-
... 并提供一些示例小提琴(并显示小提琴数据的所需结果,而不是抽象数据)。
-
这个MySQL版本的累积和是使用2个表副本或使用用户定义的变量来实现的。在存在
SUM() OVER ()的SQL Server 中使用时,这两种方法都必须完全重写。如果您将迁移到 SQL Server - 将您的 MySQL 更新到最新 (8.0.19) 版本。
标签: mysql sql sql-server