SQL - 计算具有不同创建日期的 idUser

标签 sql

我有这张 table

ID / creationDate
2  / 2012-06-28 04:58:27
2  / 2012-07-10 14:26:51
2  / 2013-04-18 00:35:36
3  / 2012-07-02 16:47:00
4  / 2012-07-02 20:24:22
5  / 2012-07-03 00:32:17
6  / 2012-07-05 04:40:02
6  / 2012-07-06 18:17:08
6  / 2013-04-28 22:28:54

我想计算具有 2 个或更多不同 creationDateID 的数量。在我的示例中,我想要 2(ID 2 和 6 具有不同的 creationDate)。

我试过了

SELECT COUNT(ID) FROM table
GROUP BY ID
HAVING count(DISTINCT creationDate)>1

最佳答案

SELECT COUNT(*)
FROM (SELECT ID,COUNT(DISTINCT creationDate)'CT'
      FROM Table
      GROUP BY ID
      HAVING COUNT(DISTINCT creationDate) > 1
     )sub

如果使用支持 SUM() OVER() 的 RDBMS,您可以使用:

SELECT TOP 1 SUM(COUNT(DISTINCT ID))OVER()
FROM Table1
GROUP BY ID
HAVING COUNT(DISTINCT creationDate) > 1

演示:SQL Fiddle

关于SQL - 计算具有不同创建日期的 idUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063518/

相关文章:

sql - 比较两个 T-SQL 表的差异

php - 将文章存储在数据库中的最佳方式? (PHP 和 SQL)

sql - 如何使用 Clojure JDBC 插入 Postgres 枚举值?

sql - 获取sql server 2005中存储过程的权限

sql - [表] 中只有 1 行时使用 ' where id IN [table] ' 会影响性能吗?

mysql - 从最高到最低分组

MySQL 通过对一组值取一列的总和来对表进行排序

sql - 如何在PL/SQL中正确解决这个问题?

sql - 在 Case 语句中使用多个 And 而不是子查询

sql - 没有延迟约束的正确工作模式是什么?