som*_*one 10 sql oracle grouping group-by sql-like
我正在使用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%')
Run Code Online (Sandbox Code Playgroud)
所以我们假设这个查询的结果是:
FRUIT..afsafafasfa ... RED_APPLE 20
FRUIT..afsafafasfa ... YELLOW_APPLE 12
FRUIT..afsafafasfa ... GREEN_APPLE 3
FRUIT..afsafafasfa ... PURPLE_ORANGE 4
FRUIT..afsafafasfa ... RED_ORANGE 45
但我希望我的结果是:
苹果35
橙色49
这可能吗?如果是这样,怎么会这样?:)
评论和代码片段非常感谢.
PS:当然查询和结果比上面的例子更复杂.我只是为了简单起见而编写它.
干杯..
Dav*_*kle 12
当然:
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8322 次 |
| 最近记录: |