回答
這就是你需要做什麼:
select gender,
count(case when age between 0 and 20 then 1 else null end) Age_0_20,
count(case when age between 21 and 40 then 1 else null end) Age_21_40
from yourtable
group by gender
相應的調整:)
更新,以澄清
注意COUNT
聚合函數只能算作非 - 空值。因此,case
中的else
值必須爲NULL
。 When
值返回1
,但它可能只是任何非空值。
有些人利用SUM
實現這個:
select gender,
sum(case when age between 0 and 20 then 1 else 0 end) Age_0_20,
sum(case when age between 21 and 40 then 1 else 0 end) Age_21_40
from yourtable
group by gender
結果將是完全一樣的。
它返回錯誤**#1064 - 你有一個錯誤!你的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以便在'than 1 else 0 end'附近使用正確的語法)Age_0_19,總和(在第2行時年齡在20到40之間的情況比1 e''** – Thompson 2012-04-02 16:20:32
剛剛寫了'而不是'then'? – 2012-04-02 16:21:09
哎呀!對不起,我寫了**而不是**,然後是**,因爲它已經給錯誤了#1064 - 你的SQL語法有錯誤;請檢查手冊,它對應於你的MySQL服務器版本的正確語法,用於在第4行'group by gender'附近使用** – Thompson 2012-04-02 16:23:08
- 1. 使用IN或OR進行mysql優化
- 2. 在mysql中如何對mysql進行調優?
- 3. MySQL優化 - 7.5m行
- 4. 如何在MySQL中優化大表
- 5. 如何在MYSQL中優化表?
- 6. 如何優化MySQL查詢以進行更新?
- 7. 如何優化MySQL插入百萬行?
- 8. 如何優化mysql表執行更快
- 9. 如何對for循環進行優化?
- 10. scipy.optimize.minimize在python中進行約束優化
- 11. 在R中進行優化時出錯
- 12. 如何優化MySQL視圖
- 13. 如何優化MySQL查詢?
- 14. 如何優化MySQL的Querys
- 15. 如何在switch語句中進行代碼優化
- 16. 在mysql中優化隊列
- 17. Mysql查詢優化 - 50k +行
- 18. 如何優化或MySQL或在PHP
- 19. 如何優化MySQL中的視圖?
- 20. mysql在時間跨度查詢優化之間進行選擇
- 21. 通過對行進行排序來優化MySQL
- 22. MySQL的優化
- 23. mysql優化
- 24. MySQL表優化
- 25. php mysql優化
- 26. 優化select mysql
- 27. MySQL的優化
- 28. Mysql的優化
- 29. Mysql優化
- 30. mySQL ORDER優化
請注意我知道如何獲取所有數據。但我想通過優化來實現 – Thompson 2012-04-02 16:13:00
+1謝謝您清楚地顯示輸入和所需的輸出。 – pilcrow 2012-04-02 16:25:19
@pilcrow:謝謝。 – Thompson 2012-04-02 16:39:50