当前位置: 首页 > 面试题库 >

SQL:是否可以根据“喜欢”函数的结果进行“分组”?

符风畔
2023-03-14
问题内容

我正在使用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:当然,查询和结果比上面的示例更复杂。我只是为了简化解释而写它。

干杯..


问题答案:

当然:

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;


 类似资料:
  • 问题内容: 是否可以在一个查询中将多个SQL LIKE通配符串在一起-像这样? 目的是查找同时包含通配符但没有特定顺序的记录。 问题答案: 正确的SQL语法是:

  • 问题内容: 我有一个这样的表: 我想将连续序列号分组为一行,如下所示: 请帮助实现此结果。 问题答案:

  • 我正在寻找一种方法来制作一个汇总表,将R中某个因子的每个级别的值与该因子的所有其他级别的值进行比较。虹膜数据集的一个例子是,我想将setosa与所有其他人(即,versicolor和virginica)进行比较,然后将versicolor与其他人(setosa和virginica)进行比较,最后将virignica与其他人(versicolor和setosa)进行比较。在我的实际数据集中,我有许多

  • 问题内容: 我的查询是我有两个表,其中一个用以下字段调用: 另一个带有以下字段的呼叫: 当表是对的外键表 好吧,我有一个小报告,其中显示了每个用户剩余的空闲天数,但我也想向您显示并以相同的查询显示该用户所请求的天数 例如,休假24天的user1创建一个应用程序,并要求4个休息日和另外10天。除了剩余的24-4-10 = 14天的休息日之外,我还希望您显示给我,您还必须告诉我您已经使用的天数:24-

  • 问题内容: 我有以下查询: 是否有根据最相关结果进行分类的策略? 问题答案: 当谈论“相关性”时,您确实想要自然语言搜索,这是MySQL全文搜索支持的。语法是比正常的不同 一样 的查询,你需要一个特殊的索引添加到表中,但排序按相关性可能是这样。 这是MySQL计算相关性的方式(来自链接): 如前面的示例所示,在WHERE子句中使用MATCH()时,返回的行将自动按照相关性最高的顺序进行排序。相关性

  • 先决条件:Java7和SQLServer 2016。 我从SQL Server获取存储过程返回的结果集 结果集: 我创建了一个POJO类来保存结果集。我想创建一个Hashmap对象,其中Key为,,,Value为List,其中包含给定Key的所有值。 那么,我可以使用HashMap做到这一点吗?我想我可以使用包含其他地图作为价值的地图。但不确定如何使公共键值项作为列表。 Java类: HoursQ