我有如下表:MySQL的 - 複雜的查詢W/GROUP_CONCAT ...單表
id | billingno | location
-------------------------
1 | 9999999 | Toronto
2 | 9999999 | Toronto
3 | 7777777 | Toronto
4 | 7777777 | Quebec
我需要一個查詢,會產生我的東西,看起來像這樣:
location | total | display
--------------------------
Toronto | 3 | 9999999 - 2, 7777777 - 1
Quebec | 1 | 7777777 - 1
所以,它按位置分組,顯示該位置的billingno的總數,然後顯示列將列出每個billingno以及它們在該位置的次數。我一直在嘗試寫這一段時間,我最親密的嘗試是這樣的:
SELECT location, COUNT(*) AS total, GROUP_CONCAT(DISTINCT CAST(CONCAT(CONVERT(billingno,CHAR(16)), ' - ', THIS_COUNT_PART_FOR_EACH_LOCATION_IN_DISPLAY_DOESNT_WORK)AS CHAR)
SEPARATOR ' - ') AS display
FROM table GROUP BY location
ORDER BY COUNT(*) DESC
它給了我一切,我需要的只是我不能爲我的生活弄清楚如何算下顯示每個billingno的數量。如果我使用COUNT(),它會給我一個關於分組的錯誤。請幫忙!
哦,我也必須使用轉換爲字符,所以它會顯示爲文本,而不是phpMyAdmin中的BLOB。再次感謝!
對不起,但你的代碼是不可讀的。糾正它。您也可以在代碼塊中添加表格。 – piotrekkr 2011-12-20 18:56:40
更正 - 我複製/粘貼它,這一切都變成了地獄,應該會更好 - 對不起! – 2011-12-20 19:09:06