輸出我目前的查詢是這樣的:SQL查詢一些行結合
item number
car 5
bus 4
bicycle 7
kaikias 10
,但我需要GROUP BY無論是機動車還是沒有該項目。但是這些信息不在數據庫中。我應該明確地說,汽車在查詢中是一輛汽車。預期的輸出是:
item number
motor 9
others 17
如何將行按其不屬於數據庫的某些屬性組合?
感謝
輸出我目前的查詢是這樣的:SQL查詢一些行結合
item number
car 5
bus 4
bicycle 7
kaikias 10
,但我需要GROUP BY無論是機動車還是沒有該項目。但是這些信息不在數據庫中。我應該明確地說,汽車在查詢中是一輛汽車。預期的輸出是:
item number
motor 9
others 17
如何將行按其不屬於數據庫的某些屬性組合?
感謝
的正確方法是創建一個新的表信息,按類別連接表和組。
否則,你可以在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
只能查詢和您在數據庫中有信息組項目。數據庫本身不可能知道,汽車有電動機或自行車沒有電動機。
如果可能的話,我會建議您添加一個新的列保存此類信息。
編輯:
如果你只是想表明對已知值,你可以試試這樣:
SELECT CASE WHEN (item = 'car' OR item = 'bus') THEN 'motor' ELSE 'others' END as item, ...
FROM yourTable
...
第一個參數是你的條件,第二個參數你的true
值,第三個參數值爲false
。
但我可以在查詢中指出汽車和公交車是汽車嗎? – javatar
請參閱我的編輯 –
它的作品,謝謝 – javatar