gpt4 book ai didi

sql - 如何在单个查询中使用 count ,'like' 和 group by?

转载 作者:行者123 更新时间:2023-11-29 13:50:38 27 4
gpt4 key购买 nike

我需要类似的东西

SELECT sum(case when name LIKE 'nick-1%' then 1 end) as Count,
name
FROM dummytable
GROUP BY CASE
WHEN name LIKE 'nick-1%' THEN 'nick'
WHEN name LIKE 'vicky-1%' THEN 'vicky'
ELSE NULL
END
Name  Count
nick 10
vicky 17

nick 表示它应该包含像 'nick%' 这样的名字vicky 意味着它应该包含像 'vicky%' 这样的名字

在我的查询中,我无法查看名称列,因为使用 sum 它要求我将其添加到分组依据,但我无法将其添加到分组依据,因为我正在为其使用 like 函数

最佳答案

要解决您遇到的问题,您只需在 SELECT 中重复您当前在 GROUP BY 中使用的相同 CASE 表达式> 还有:

SELECT CASE WHEN name LIKE 'nick-1%'  THEN 'nick'
WHEN name LIKE 'vicky-1%' THEN 'vicky'
ELSE NULL END AS Name,
COUNT(*) AS Count
FROM dummytable
GROUP BY CASE WHEN name LIKE 'nick-1%' THEN 'nick'
WHEN name LIKE 'vicky-1%' THEN 'vicky'
ELSE NULL END

在您的原始查询中,您混合了两种类型的聚合。如果您想对整个表使用条件聚合(您最初的 SELECT 试图这样做),您可以使用以下查询:

SELECT 'nick' AS Name, SUM(CASE WHEN name LIKE 'nick-1%' THEN 1 ELSE 0 END) AS Count
FROM dummytable
UNION ALL
SELECT 'vicky', SUM(CASE WHEN name LIKE 'vicky-1%' THEN 1 ELSE 0 END)
FROM dummytable

关于sql - 如何在单个查询中使用 count ,'like' 和 group by?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41735085/

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