我有这种关系; 国家(名称,代码,首都,省份,地区,人口)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'? –