通过排除列的某些值来分组

时间:2016-03-24 07:39:05

标签: sql oracle plsqldeveloper

列中有许多值,例如示例 用于文具桌。 我想要铅笔,钢笔,笔记本等。我可以很容易地使用DECODE实现这一点。但是,如果我想要排除铅笔,钢笔和笔记本,并将其余部分计入一个共同组"其他"。我们怎么能这样做?

1 个答案:

答案 0 :(得分:1)

假设列名为ITEM且表名为STATIONERY,并且您具体指定的列项为PencilPenNotebook尝试:

SELECT CASE item
         WHEN 'Pencil' THEN 'Pencil'
         WHEN 'Pen' THEN 'Pen'
         WHEN 'Notebook' THEN 'Notebook'
         ELSE 'Others'
       END AS item_type, 
       count(*)
  FROM stationery
 GROUP BY CASE item
            WHEN 'Pencil' THEN 'Pencil'
            WHEN 'Pen' THEN 'Pen'
            WHEN 'Notebook' THEN 'Notebook'
            ELSE 'Others'
          END;