gpt4 book ai didi

sql - 计算有多少列具有特定值

转载 作者:行者123 更新时间:2023-12-03 01:42:06 30 4
gpt4 key购买 nike

我有一个如下所示的表格:

ID    x1    x2    x3    x4
1 20 30 0 0
2 60 0 0 0
3 10 30 0 0
4 30 30 30 30

我希望能够查询此内容并返回 ID,其中包含该行中值大于 0 的列数。所以结果看起来像这样:

ID    Count
1 2
2 1
3 2
4 4

最佳答案

试试这个:

SELECT ID, z.cnt
FROM mytable
CROSS APPLY (SELECT COUNT(*) AS cnt
FROM (VALUES (x1), (x2), (x3), (x4)) x(y)
WHERE x.y > 0) z

此查询使用 Table Value Constructor创建一个内联表,其是初始表的。对此内联表执行COUNT,您可以获得大于零的列数。

我认为如果您有超过 4 列,那么它可以很好地扩展。

Demo here

关于sql - 计算有多少列具有特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31590705/

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