当前查询的输出如下:
item number
car 5
bus 4
bicycle 7
kaikias 10但是我需要把这个项目按它是否是机动车辆分组。但是数据库中没有这些信息。我应该解释一下,在查询中,汽车是机动车辆。预期产出如下:
item number
motor 9
others 17如何通过不存在于DB中的行的某些属性组合行?
谢谢
发布于 2014-01-22 08:02:00
正确的方法是为这些信息创建一个新的表,加入表并按类别分组。
否则,您可以对in和case进行类似的操作,但它不能很好地扩展,而且很麻烦。
如下所示:
select
case when item in ('motor1', 'motor2', '...') then 'motors' else 'others' end item,
count(*) number
from
table
group by
case when item in ('motor1', 'motor2', '...') then 'motors' else 'others' end发布于 2014-01-22 08:02:28
您只能根据数据库中的信息查询和分组项。你的数据库不可能自己知道,汽车有马达,自行车没有马达。
如果可能的话,我建议您添加一个新列来保存这些信息。
编辑:
如果您只想指示已知的值,可以这样做:
SELECT CASE WHEN (item = 'car' OR item = 'bus') THEN 'motor' ELSE 'others' END as item, ...
FROM yourTable
...第一个参数是您的条件,第二个参数是true的值,第三个参数是false的值。
https://stackoverflow.com/questions/21277216
复制相似问题