postgresql - 如何在 Postgres 中找到一个月的最大选项数?
问题描述
我想找出我的每个用户在给定月份的最大费率选项数。这是我的费率表的样子:
Member | Month | Rate
Joe | Jan | 1
Joe | Jan | 2
Joe | Jan | 3
Joe | Feb | 1
Joe | Feb | 2
Joe | Feb | 2
Joe | Mar | 1
Joe | Mar | 2
Joe | Mar | 2
Max | Jan | 1
Max | Jan | 1
Max | Jan | 1
Max | Feb | 2
Max | Feb | 2
Max | Feb | 2
Max | Mar | 3
Max | Mar | 3
Max | Mar | 3
Ben | Jan | 1
Ben | Jan | 2
Ben | Jan | 2
Ben | Feb | 1
Ben | Feb | 1
Ben | Feb | 1
Ben | Mar | 1
Ben | Mar | 1
Ben | Mar | 1
乔在一月份有可供他使用的费率选项 [1,2,3]。乔在二月和三月只有两个 [1,2]。对于每个用户,我想显示一个月内可用的最大费率数(与所有月份相比)。结果表应如下所示:
Member | Max rates in one month
Joe | 3
Max | 1
Ben | 2
我将如何编写此查询?
解决方案
您可以通过一些聚合来做到这一点:
SELECT Member, MAX(rate_count) as "Max rates in one month"
FROM
(SELECT Member, Month, COUNT(DISTINCT RATE) rate_count FROM yourtable GROUP BY Member, Month) dt
GROUP BY Member;
推荐阅读
- mongodb - 如何重命名 MongoDB 数据库?(当前状态)
- powershell - 从日志文件中获取最后 30 分钟
- javascript - java脚本websocket无法连接到python server
- json - Json Response Spring boot 中的继承
- python - 如何使用请求模块从 div 获取文本?
- javascript - NodeJS Firebase 等待请求
- azure-devops - SAPUI5 xhr 请求 Azure DevOps 授权失败
- php - PHP Scraper 循环直到超过时间限制(使用简单的 HTML Dom 解析器)
- r - Dredge MuMIn:在 GLMM 上使用挖泥机时,空模型是否包含随机效应?
- macos - OSX上的“dyld:警告,LC_RPATH @executable_path”是什么意思,我该如何解决?