2013-05-15 182 views
-1

我有一張表;汽車mysql - count查詢查詢結果

汽車有許多領域:顏色,型號,崩潰,等等等等

我查詢表:

從汽車選擇所有地方的顏色是紅色

然後我要查詢結果,計算有多少人墜毀。 (墜毀現場是一個布爾值)

所以最後,我應該擁有的數據是紅色汽車的各個領域,並知道X墜毀

是否有可能只做到這一點一個敲mysql的門? 還是你必須做兩個單獨的查詢?

感謝

+1

您可以發佈實際查詢而不是查詢僞代碼。你有什麼努力將兩者結合成一個查詢? –

回答

2

一些數據:

mysql> select * from cars; 
+-----+-------+---------+ 
| SNO | color | crashed | 
+-----+-------+---------+ 
| 1 | red |  0 | 
| 2 | red |  1 | 
| 3 | red |  1 | 
| 4 | blue |  1 | 
| 5 | blue |  1 | 
| 6 | blue |  1 | 
| 7 | blue |  0 | 
+-----+-------+---------+ 

和查詢:

mysql> select color,sum(crashed),count(*) as total from cars group by color; 
+-------+--------------+-------+ 
| color | sum(crashed) | total | 
+-------+--------------+-------+ 
| blue |   3 |  4 | 
| red |   2 |  3 | 
+-------+--------------+-------+ 
2 rows in set (0.00 sec) 
+0

是的,我添加了另一個查詢,你可以試試它! - >總和 - 這就是我正在尋找!謝謝 – Lan

+0

現在我的下一個問題是,我可以使用SUM來計算字符串,所以如果它說'在字段中崩潰'計數爲1,如果爲空計爲0?謝謝 – Lan

+0

也許:'選擇顏色,總和(如果(crashed_s ='crashed',1,0)), – mogul

0

你可以試試:

SELECT * FROM cars WHERE color = "red" AND crashed = TRUE 

或任何你崩潰的指標是,我只用SQL一點工作,但我相信這 查詢會顯示紅色的所有汽車並有一個真實的墜毀值。

+0

不,看到這只是給我的紅色撞車的數據 - 我想要紅色車的所有數據,既崩潰也沒有崩潰,並且知道有多少人已經崩潰 – Lan

+1

這個修改過的查詢可能工作:'SELECT *,SUM(CASE墜毀當TRUE然後1 ELSE 0結束)從汽車WHERE顏色=「紅色」GROUP BY墜毀「 – SSaaM

0

是的,你會使用WHERE子句。

SELECT * FROM cars WHERE Color = 'red' AND Crashed = true

或者,如果你想通過顏色崩潰,

SELECT color, count(*) FROM Cars WHERE crashed = true GROUP BY color;

或者,你澄清,SELECT crashed, count(*) as yourval FROM Cars WHERE color = 'Red' GROUP BY crashed

+0

不,對不起,這只是給我的紅色,墜毀汽車的數據 - 我想要所有的數據紅色的汽車,既墜毀也沒有墜毀,也知道有多少人已經墜毀 – Lan

+0

@lan,如果你正在聚合一個計數,你不能也擁有所有的數據。如果你喜歡 – Scotch