我正在尝试编写一个SQL语句,在该语句中,我想将一行中的所有数据分组到两个组中的任意一个组中,然后根据它们对哪个组进行计数。
SELECT vehicle "type", count(*) "count"
FROM(
SELECT
CASE
WHEN auto_type LIKE 'chevy' THEN 'domestic'
WHEN auto_type LIKE 'ford' THEN 'domestic'
ELSE 'foreign'
END as "vehicle"
FROM table_name
)
GROUP BY vehicle
我的最终目标是让它显示一个表格,其中包含两种类型的类型和每种类型的计数。嵌套语句本身就像我刚刚得到计数的那样。当我把两者放在一起的时候就是我遇到问题的时候。它给了我一个ORA-00904:“车辆”:无效的标识符错误。
答案 0 :(得分:2)
SELECT sum(CASE WHEN auto_type IN ('ford','chevy') THEN 1 end) as domestic_cnt,
sum(CASE WHEN auto_type NOT IN ('ford','chevy') THEN 1 end) as foreign_cnt
FROM table_name
答案 1 :(得分:2)
请使用车辆作为下面的列,更改删除引号的查询 因为online test工作正常
SELECT vehicle "type", count(*) "count"
FROM(
SELECT
CASE
WHEN auto_type LIKE 'chevy' THEN 'domestic'
WHEN auto_type LIKE 'ford' THEN 'domestic'
ELSE 'foreign'
END as vehicle
FROM table_name
)
GROUP BY vehicle