gpt4 book ai didi

mysql - 计算列上的案例 "string"

转载 作者:行者123 更新时间:2023-11-29 05:10:34 25 4
gpt4 key购买 nike

我想对列中的某个值进行计数。结构看起来像这样;

FieldName       FieldValue
food fruit
food fruit
food fruit
food vegetable

MySQL 查询如下所示:

SELECT `FieldValue` AS `type`,
COUNT(case when `FieldValue` = 'fruit' then 1 end)AS `counts`
FROM `mytable`
WHERE `FieldName` LIKE '%food%'
GROUP BY `FieldName`

它返回这个什么是好的:

type        counts
fruit 3

但是当我把“水果”改成“蔬菜”时:

SELECT `FieldValue` AS `type`,
COUNT(case when `FieldValue` = 'vegetable' then 1 end)AS `counts`
FROM `mytable`
WHERE `FieldName` LIKE '%food%'
GROUP BY `FieldName`

我得到了这个:

type        counts
fruit 1

计数没问题,但类型错误,应该是“蔬菜”。我在这里做错了什么?也许解决方案非常简单,但我只是没有看到。

最佳答案

尝试:

SELECT `FieldValue` AS `type`,
COUNT(*)AS `counts`
FROM `mytable`
WHERE `FieldName` LIKE '%food%' and `FieldValue` = 'vegetable'
GROUP BY `FieldValue`

请注意,在您的原始查询中,您按 FieldName 而不是 FieldValue 分组,而 FieldValue 是您在选择中使用的字段条款。

如果您使用的是 MySQL,您应该知道它允许您在非聚合列不在 group by 子句中的情况下使用聚合函数。这会在 Oracle 和 MS SQL Server 等其他 RDBMS 中引发错误,但在 MySQL 中它只会让您想知道发生了什么。

MySQL Aggregate Functions without GROUP BY clause

关于mysql - 计算列上的案例 "string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998364/

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