【发布时间】:2015-12-10 13:03:24
【问题描述】:
我有以下问题 - 我有一个包含 4 列的表:Id、Name、InsertTime、UpdateTime。 我想计算每个名称(不是唯一的!)有多少具有相同名称的 不同 InsertTime 或 UpdateTime。 例如,如果我有以下数据:
ID NAME INSERTED_TIME UPDATE_TIME
1 maya 21-12-2015 21-12-2015
2 tal 22-12-2015 21-12-2015
3 maya 21-09-2015 21-12-2015
4 mark 21-12-2015 21-12-2015
5 mark 21-12-2015 21-12-2015
我希望结果是:
NAME COUNT
maya 1
tal 0
mark 0
解释:“maya”有 1 个重复的 InsertTime 或 UpdateTime。 “tal”没有重复项。并且“mark”有一个重复,但是 InsertTime 和 UpdateTime 都是一样的,所以不算。
我试过了:
SELECT COUNT(*)
FROM table t1
JOIN table t2 on t1.NAME=t2.NAME
where (t1.INSERTED_TIME<>t2.INSERTED_TIME or t1.UPDATE_TIME<>t2.UPDATE_TIME)
但这会返回重复项。 我还尝试了 GROUP BY 的不同方法 - 到目前为止没有任何效果。
任何帮助将不胜感激。
【问题讨论】:
标签: sql sql-server group-by