sql - 在 PostgresSQL 中使用 group by 函数而不提及列名
问题描述
我想对msg_type
表中的列名使用分组函数,prod_replay_in
但不想msg_type
在下面的查询中使用列名。任何建议将不胜感激。谢谢你。
Table name = prod_replay_in
Column list = id int,
msg_type varchar(20),
msg text;
我试过什么?
select count(*), msg_type from prod_replay_in
group by msg_type
解决方案
您可以使用window
函数来计算聚合结果,而无需使用GROUP BY
子句。
示例 SQL -
select t.msg_type, t.ccount from
(select msg_type, count(*) over(partition by msg_type) ccount,
rank() over(partition by msg_type order by id) rrank
from prod_replay_in) t where rrank = 1;
推荐阅读
- jquery - 滚动条无法滚动到容器末尾
- java - 文件上传端点需要关闭 InputStream?
- javascript - 这个日期是什么格式的?
- cs50 - CS50 Pset7 财务
- rust - 为什么看起来闭包借用了 self 而不是 self 的字段?
- excel - 将多个 Excel 工作簿合并为一个主工作簿
- google-sheets - 执行 Google 表格查询时如何保持原始标题名称
- alexa - 在 Alexa Skill 中使用 sessionAttributes
- ajax - 可在 laravel 中的空 id 上排序
- google-maps - 如何在 Leaflet 中加载谷歌地图基础层(2018 年 6 月之后)?