【发布时间】:2014-03-29 21:22:22
【问题描述】:
我在编写可以在特定条件下查找唯一计数/重复项的查询时遇到问题。我正在尝试从与此类似的表中一次获取计数:
|-P_key-|-----email-----|-act_no-|--Client--|
| 1 | joe@code.com | 1 | Jets |
| 2 | bob@code.com | 2 | Jets |
| 3 | sue@code.com | NULL | Jets |
| 4 | joe@code.com | 1 | Bills |
| 5 | bob@code.com | 2 | Bills |
| 6 | bob@code.com | 2 | Giants |
| 7 | max@code.com | 2 | Giants |
| 8 | ben@code.com | 5 | Pats |
我正在寻找的客户数量如下:
- 每个客户的总记录计数
- 客户的唯一电子邮件总数
- 客户端中唯一帐号的总数
- 客户的唯一帐号总数
- 客户中的空白帐号计数
我知道我可以使用 group by 和 have 来单独获取这些计数,如下所示:
SELECT COUNT(email)
FROM Table
GROUP BY EMAIL
HAVING COUNT(email) > 1;
但我希望创建一个可以同时返回所有计数的代码。我使用的是 SQL Server 2008。
我希望实现的输出如下(尽管最终数据不一定需要如此旋转):
| | Jets | Bills | Giants | Pats |
| Total emails | 3 | 2 | 2 | 1 |
| unique emails across projects | 5 | 5 | 3 | 0 |
| unique account_no across projects| 6 | 6 | 4 | 0 |
| unique account_no within project | 0 | 0 | 2 | 0 |
| blank account_no within project | 1 | 0 | 0 | 0 |
OR
| | tot unique emails | duped account_no's | etc...
| Jets | 3 | 5 |
|Bills | 2 | 5 |
| Giants | 2 | 3 |
| Pats | 1 | 0 |
感谢您提前提供的所有帮助!
【问题讨论】:
-
您能否针对问题中的数据显示您想要的输出?
标签: sql sql-server sql-server-2008-r2