如何在 Teradata SQL 中使用 LEFT JOIN 对查询中的非聚合参数进行 GROUP BY?
Posted
技术标签:
【中文标题】如何在 Teradata SQL 中使用 LEFT JOIN 对查询中的非聚合参数进行 GROUP BY?【英文标题】:How to GROUP BY non-aggregation parameters in query with LEFT JOIN in Teradata SQL? 【发布时间】:2021-12-10 18:29:59 【问题描述】:我在 Teradata SQL 中有如下查询:
SELECT DISTINCT ID
FROM (
SELECT *
FROM
(SELECT c.ID
FROM table c
LEFT JOIN (SELECT ID, COUNT(*) AS trx) as abc
ON c.ID = abc.ID
WHERE 1=1
AND PARAM = 12
HAVING SUM(trx) > 2
GROUP BY ....
QUALIFY ROW_NUMBER() OVER ( ...) =1) AS q1
QUALIFY ROW_NUMBER() OVER ( ...) =1) AS q2
如您所见,我使用 count(*) 进行了 LEFT JOIN,然后我使用了 HAVING 子句,所以我需要履行 GROUP BY 但我不知道如何履行 GROUP BY?根据我的查询,这个子句应该是什么?
您能帮我解决一下 Teradata SQL 的问题吗?
【问题讨论】:
fulfill GROUP BY 是什么意思?您需要更具体地了解您想要实现的目标...... 这个查询没有意义。请显示示例数据和期望的结果,并解释您要做什么。 【参考方案1】:您需要先使用“Group by”词干,然后使用“HAVING”语句。你可以看看这个例子
SELECT cliente, SUM(precio)
FROM pedidos
GROUP BY cliente
HAVING SUM(precio) > 500
在这里你可以看到更多documentation。
【讨论】:
以上是关于如何在 Teradata SQL 中使用 LEFT JOIN 对查询中的非聚合参数进行 GROUP BY?的主要内容,如果未能解决你的问题,请参考以下文章
如何在(Teradata)仅使用 ANSI SQL 时实现重置?