如何仅对选定的行数使用 group by?

Posted

技术标签:

【中文标题】如何仅对选定的行数使用 group by?【英文标题】:How do I use group by for only selected number of rows? 【发布时间】:2021-09-09 18:40:18 【问题描述】:

我是学习 sql 的新手,非常感谢您的帮助。

ID Alphabet
1 a
2 b
3 b
4 c
5 e
6 d
7 d
8 f
9 a
10 c

我想知道每个字母表只出现在前五行的次数。 在上述情况下,我想得到 a: 1, b: 2 c: 1, e: 1

我试过select Alphabet, count(Alphabet) from TABLENAME group by Alphabet limit 5 但这给出了五组 Alphabet 及其在所有行中的计数。如何修复此代码?再次感谢。

【问题讨论】:

【参考方案1】:

您将使用子查询:

select alphabet, count(*)
from (select t.*
      from tablename t
      order by id
      limit 5
     ) t
group by alphabet;

【讨论】:

以上是关于如何仅对选定的行数使用 group by?的主要内容,如果未能解决你的问题,请参考以下文章

计算在JPA中使用“group by”和“have”过滤的行数

如何从QTableView中获取选定的行数

将选定的行数据传递给下一个 View Controller Swift 3

在 GROUP BY 中按行数获取前 N 行

如何计算 MySQL 表中的行数(PHP PDO)

如何在JqGrid中按组显示每行的行数