You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计GROUP BY分组SQL查询结果的行数(非分组值数量)

统计GROUP BY后SQL查询结果的行数

要统计这段GROUP BY查询的结果行数,有几种简单可行的方法:

  • 嵌套子查询统计:把原查询作为子查询,外层用COUNT(*)直接统计行数,这是最通用的方法,几乎所有数据库都支持:
SELECT COUNT(*) AS 结果总行数
FROM (
    SELECT F.BELTAR 
    FROM E_HDFTKP_FORM F
    INNER JOIN E_HDFTKP_FORM_TABLO3 S ON F.ID = S.FORMID
    INNER JOIN FLOWDOCUMENTS FD ON F.ID = FD.FILEPROFILEID
    INNER JOIN LIVEFLOWS LF ON FD.PROCESSID = LF.ID
    INNER JOIN FLOWSTATUSES FL ON LF.FLOWVERSION = FL.VERSION AND FL.STATUS = LF.STATUS AND FL.PROCESS = LF.PROCESS
    WHERE F.BELGENO IS NOT NULL  AND LF.FLOWSTEP > 1 AND S.HAT2 = 'T101' AND LF.DELETED = 0  
    GROUP BY F.BELTAR
) AS temp_table
  • 窗口函数关联统计:如果你的数据库支持窗口函数(比如MySQL 8.0+、PostgreSQL、SQL Server等),可以用COUNT(*) OVER()在返回明细的同时,附带显示总行数:
SELECT 
    F.BELTAR,
    COUNT(*) OVER() AS 总行数
FROM E_HDFTKP_FORM F
INNER JOIN E_HDFTKP_FORM_TABLO3 S ON F.ID = S.FORMID
INNER JOIN FLOWDOCUMENTS FD ON F.ID = FD.FILEPROFILEID
INNER JOIN LIVEFLOWS LF ON FD.PROCESSID = LF.ID
INNER JOIN FLOWSTATUSES FL ON LF.FLOWVERSION = FL.VERSION AND FL.STATUS = LF.STATUS AND FL.PROCESS = LF.PROCESS
WHERE F.BELGENO IS NOT NULL  AND LF.FLOWSTEP > 1 AND S.HAT2 = 'T101' AND LF.DELETED = 0  
GROUP BY F.BELTAR

这种方法的好处是不用额外执行一次查询,就能同时看到每个BELTAR值和结果的总条数。

  • 工具直接查看:如果用可视化数据库工具(比如DBeaver、Navicat、SSMS),执行原查询后,工具的结果面板通常会直接显示返回的行数,不用修改SQL就能快速获取。

内容的提问来源于stack exchange,提问作者Anıl ÇELEBİ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:27:17