gpt4 book ai didi

mysql - SQL 计数等于 1 个值的记录,并对其余的进行计数和分组

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:13 26 4
gpt4 key购买 nike

我在编写需要编写的查询时遇到了问题。出于某种原因,我似乎无法得到任何工作。我知道解决方案非常简单,但我似乎想不出。

假设我的数据库中有一个名为“entrys”的表,如下所示:

ID  |  Item  |  value
------------------------------
1 | item 1 | 3
2 | item 1 | 4
3 | item 1 | 3
4 | item 2 | 3
5 | item 3 | 3
6 | item 1 | 3
7 | item 1 | 3
8 | item 1 | 3
9 | item 4 | 3
10 | item 4 | 6

我想计算值 = 3 时项目 1 出现的次数,然后将其他项目组合在一起可以为它们提供一个 = 3 的计数,例如,此表的输出将是

  Item  |  Count
---------------------
Item 1 | 5
Other | 3

由于项目 1 出现 5 次,值为 3,所有其他值为 3 的项目组合在一起并显示为其他,计数为 3

最佳答案

聚合的关键是一个case 语句。然后您还需要计算适当的值。在 MySQL 中,您可以:

SELECT (CASE WHEN Item = 'item 1' THEN Item ELSE 'Other' END) AS Item, COUNT(*) AS `Count3`
FROM entrys e
WHERE value = 3
GROUP BY Item;

MySQL 允许在 GROUP BY 中使用列别名。如果你想计算值为 3 的所有,那么你可以这样做:

SELECT (CASE WHEN Item = 'item 1' THEN Item ELSE 'Other' END) AS Item,
COUNT(*) as AllCount, SUM(value = 3) as Count3
FROM entrys e
GROUP BY Item;

关于mysql - SQL 计数等于 1 个值的记录,并对其余的进行计数和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24419535/

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