SQL:选择最常出现的对应于不同列的值

标签 sql postgresql

有人可以指出我的问题的正确解决方案吗? 我有一张 table -

+------+-------+--------------------------------------+
| id   | num   | date                                 |
+------+-------+--------------------------------------+
| a    | 1     | 2011-08-12T20:17:46.384Z             |
| a    | 1     | 2011-08-12T20:18:46.384Z             |
| a    | 2     | 2011-08-12T20:19:46.384Z             |
| a    | 2     | 2011-09-12T20:17:46.384Z             |
| c    | 3     | 2011-09-12T20:18:46.384Z             |
+------+-------+--------------------------------------+

现在对于给定的日期范围,我想为“id”值获取列“num”中出现次数最多的值。

范围(2011-08-12T00:00:00.000Z 到 2011-08-12T23:59:00.000Z)的结果应该是

| a    | 1     | 090518                               |

基本上,我想要与给定日期时间范围内的 id 对应的列中出现次数最多的值。

我将使用 PostgreSQL。

最佳答案

这应该返回这样的东西:

| id | num | occurrences |

select id,num,count(num) as [occurrences]
from MyTable 
where  id = 'a' /* Given id */
and [date]  >= '2011-08-12T00:00:00.000Z' AND [date]  <= '2011-08-12T23:59:00.000Z' /* Given Range */
group by id,num
order by [occurrences] DESC 

关于SQL:选择最常出现的对应于不同列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50334161/

相关文章:

postgresql - plpgsql : how to reference variable in sql statement

mysql - 如何使用下划线(_)和句点(.)拆分值?

sql - 如何从Postgres中的嵌套估计中找到需要的 Material

java - jOOQ,Java - 如何导入生成的 java 文件?

mysql - SQL Key值表--选择有多个key的ids

php - MySql查询优化方法

sql - 带时区的 Oracle DateTime 查询

sql - 是否有表格比较 SQL 命令和 R 命令?

java - 使用 Postgresql 对 Spring Boot 应用进行 Docker 化

postgresql - 如何在 Postgres 中为 UUID 主键列设置默认值?