回答

收藏

SQL:喜欢函数的结果可以分组吗?

技术问答 技术问答 566 人阅读 | 0 人回复 | 2023-09-14

我正在使用Oracle SQL,并且想分组一些喜欢函数结果的不同行。. Y9 C1 ~$ u: c6 ]$ z1 `  b+ f) D/ D6 t
假设我有一MESA,其中一列是一个巨大的字符串。我正在计算与特定模式相匹配的行数:
3 f/ ]( y! W: G. a0 K: X2 K7 JSELECT m.str,count(*)FROM MESA mWHERE m.str LIKE '%FRUIT%'AND (m.str LIKE '%APPLE%' OR m.str LIKE '%ORANGE%')因此,假设此查询的结果如下:
8 P; v5 T1 {8 q/ u; `1 T水果..afsafafasfa … RED_APPLE 20! a, u9 h; {( \2 j5 r% y5 L# {3 Q
水果..afsafafasfa … YELLOW_APPLE 12% M$ |7 y9 T, F- n" F/ q* O
水果..afsafafasfa … GREEN_APPLE 3# ]2 L( |' k+ }- S( w/ m8 P' T
水果..afsafafasfa … PURPLE_ORANGE 4/ S# A/ I8 `/ R8 a  C
水果..afsafafasfa …红色_橙色45
8 E9 y6 r' E8 E- ~0 q但我希望我的结果是:
. I' m2 S; e2 H) r8 `$ T苹果35
1 h- i; R: G  N8 V& ?橙色493 c, L* O2 V( j! H3 v& M3 K( M
这是可能的吗?如果是这样该怎么办?
. I4 J1 Y8 ?+ R; p& |注释和代码段非常受欢迎。
$ v' `* E9 f' S* j1 YPS:当然,查询和结果比上面的例子更复杂。我只是写它来简化解释。
1 R3 E! H. a! s6 `, C( g* Y干杯..
, r9 T+ L* X) q* s                                                               
3 Q* i6 Y& y% N1 k    解决方案:                                                                1 \9 m  j4 C9 v; z$ z
                                                                当然:
7 i8 [: v( n7 Y/ E" q7 wWITH 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 FruitsWHERE FruitType IN ('Apple','Orange')GROUP BY FruitType;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则