gpt4 book ai didi

sql - 如何按另一列中的值对查询结果进行分组?

转载 作者:行者123 更新时间:2023-11-29 13:35:31 24 4
gpt4 key购买 nike

我有一个名为 vegetation 的表,其中包含 2 列:
类型计数

我想对计数值小于平均计数的所有行的计数求和,以及计数值高于平均计数的所有行的计数。

我不知道如何在 group by 子句中反射(reflect)这一点...(或其他地方?)。

我想另一种方法应该是为所有低于平均水平的数据分配一个值,为所有高于平均水平的数据分配另一个值,然后按该值分组。但我才刚刚开始,也不知道该怎么做。

最佳答案

SELECT sum(CASE WHEN ct <= x.avg_ct THEN ct ELSE 0 END) AS sum_ct_low
,sum(CASE WHEN ct > x.avg_ct THEN ct ELSE 0 END) AS sum_ct_hi
FROM vegetation v
,(SELECT avg(ct) AS avg_ct FROM vegetation) x

平均值是单个值,您可以CROSS JOIN子查询到基表(逗号分隔的表列表表示交叉连接)。
然后使用简单的 CASE 语句进行过滤。

我使用 ct 而不是 count,因为那是一个 reserved word in SQL .

关于sql - 如何按另一列中的值对查询结果进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com