通过排除列的某些值进行分组
group by excluding some values of a column
一列中有很多值,例如example
文具 table。
我想要铅笔、钢笔、笔记本等的数量。我可以很容易地使用 DECODE 来实现。但是,如果我想排除 Pencil、Pen 和笔记本并将其余的计算在一个公共组中 "Others"。我们怎么能做到呢?
假设列名是 ITEM
并且 table 被命名为 STATIONERY
并且您具体命名的列项是 Pencil
、Pen
和Notebook
然后尝试:
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;
一列中有很多值,例如example 文具 table。 我想要铅笔、钢笔、笔记本等的数量。我可以很容易地使用 DECODE 来实现。但是,如果我想排除 Pencil、Pen 和笔记本并将其余的计算在一个公共组中 "Others"。我们怎么能做到呢?
假设列名是 ITEM
并且 table 被命名为 STATIONERY
并且您具体命名的列项是 Pencil
、Pen
和Notebook
然后尝试:
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;