You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何统计Teradata SQL分组查询返回的记录行数

解决Teradata中统计分组查询结果行数的问题

嘿,我来帮你搞定这个需求!你要统计那条分组查询返回的行数,其实用子查询或者CTE就能轻松解决,我给你两种可行的方案:

方案一:嵌套子查询

这是最直接的方式,把你的原查询包裹成一个子查询,然后在外层用COUNT(*)统计它的行数就行。注意Teradata要求子查询必须有别名,不然会报错哦:

SELECT COUNT(*) AS result_row_count
FROM (
    SELECT PDate, Risk, BName, BNumber, ONumber, OnNumber, ID_CD, Entity, AU, RType, COUNT(*)
    FROM Load_one.import_test 
    GROUP BY 1,2,3,4,5,6,7,8,9,10 
    HAVING COUNT(*) > 1
) AS duplicate_subquery;

方案二:使用CTE(WITH子句)

如果你的查询逻辑比较复杂,用CTE会让代码可读性更好,逻辑更清晰,本质和子查询是一样的:

WITH duplicate_groups AS (
    SELECT PDate, Risk, BName, BNumber, ONumber, OnNumber, ID_CD, Entity, AU, RType, COUNT(*) AS group_count
    FROM Load_one.import_test 
    GROUP BY 1,2,3,4,5,6,7,8,9,10 
    HAVING COUNT(*) > 1
)
SELECT COUNT(*) AS result_row_count
FROM duplicate_groups;

另外补充一点:如果你只是在Teradata客户端(比如Teradata Studio)里临时查看,执行完原查询后,结果面板通常会直接显示返回的行数;但如果是在脚本或者程序里调用,上面的SQL方法就是最可靠的。

内容的提问来源于stack exchange,提问作者Sam

火山引擎 最新活动