如何解决SQL:是否可以根据“喜欢”函数的结果进行“分组”?
当然:
WITH Fruits AS (
SELECT
CASE
WHEN m.str LIKE '%APPLE%' THEN 'Apple'
WHEN m.str LIKE '%ORANGE%' THEN 'Orange'
END AS FruitType
FROM MESA m
WHERE m.str LIKE '%FRUIT%')
SELECT FruitType, COUNT(*)
FROM Fruits
WHERE FruitType IN ('Apple', 'Orange')
GROUP BY FruitType;
解决方法
我正在使用Oracle SQL,并且想对一些“喜欢”函数结果的不同行进行分组。举例说明:
假设我有一个表MESA,其中的一列是一个巨大的字符串。 我正在计算与特定模式匹配的行数:
SELECT m.str,count(*)
FROM MESA m
WHERE m.str LIKE '%FRUIT%'
AND (m.str LIKE '%APPLE%' OR m.str LIKE '%ORANGE%')
因此,假设此查询的结果为:
水果..afsafafasfa … RED_APPLE 20
水果..afsafafasfa … YELLOW_APPLE 12
水果..afsafafasfa … GREEN_APPLE 3
水果..afsafafasfa … PURPLE_ORANGE 4
水果..afsafafasfa …红色_橙色45
但我希望我的结果是:
苹果35
橙色49
这可能吗?如果是这样,怎么办?:)
注释和代码段非常受赞赏。
PS:当然,查询和结果比上面的示例更复杂。我只是为了简化解释而写它。
干杯..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。