【发布时间】:2015-05-21 06:18:53
【问题描述】:
我在MS SQLSERVER 中有一个包含 2 列 TimeStamp 和 ID 的表
TimeStamp ID
2015-05-20 1
2015-05-20 2
2015-05-20 1
2015-05-21 1
2015-05-21 2
2015-05-21 2
2015-05-21 1
我的要求是根据日期计算每个 ID 的记录数。
要求:
Date No of records for Id=1 No. records for ID=2 Total
2015-05-20 2 1 3
2015-05-21 2 2 4
请让我知道如何为其他列执行此操作。
谢谢
【问题讨论】:
-
是 2008 r2 还是 2012?你不知道你正在使用什么版本的 sql server 吗?如果您同时需要它们,请选择最旧的,因为它的解决方案可能也适用于较新的。另外,请阅读 Pivot
-
为想要测试他们的解决方案的人创造了一个小提琴:sqlfiddle.com/#!3/8c28c/1
-
一般你不会在数据库中这样做。您将按日期和 ID 分组计数以获取行,然后让您的报告/消费者弄清楚如何呈现它。动态 SQL 会损害性能和安全性。此外,这种方法可能会导致您可能会用完列(正如其他人所说)。这些数据的目的地是什么?
标签: sql sql-server sql-server-2008-r2 group-by sql-server-2012