我有這種關係; 國家(名稱,代碼,首都,省份,地區,人口)SQL函數和按結果排序?
我想從哪裏獲得語言(姓名),每種語言的母語人數。
我很確定我幾乎完成了這個,但我不認爲我已經得到了什麼「ORDER BY」的真正用處,因爲我的計算count(l.name)當我確信這個數據庫包含某些語言在幾個國家的語言信息時,它會變得雜亂無章,只能得到值「1」!
SELECT DISTINCT l.name, count(l.name) as SpokenIn,
l.percentage*c.population as NativeSpeakers
FROM (country c
JOIN language l
ON c.code = l.country)
GROUP BY l.name, NativeSpeakers;
所有其他行都很好,只有「SpokenIn」關係很混亂。我在做什麼錯:(
我使用PostgreSQL。
嗯,首先,你真的不需要作爲group by子句的DISTINCT限定符指定了您希望計數所基於的字段。您將得到「1」作爲計數,因爲DISTINCT最終會爲您提供每行結果的一行。其次,它看起來像你試圖做每個國家*的百分比計算,但試圖對整個語言進行計數... –
是否使用'SUM'而不是'COUNT'工作' 1.name'? – Sev09
這個查詢中的ORDER BY'在哪裏,你可能是指'GROUP BY'? –