Mysql 如何使用sql语句生成结果?
原始表格: 请参见结果中的国家/地区列。 总之,我想列出每个国家人口最多的省份,然后列出每个国家人口第二大的省份Mysql 如何使用sql语句生成结果?,mysql,sql,database,Mysql,Sql,Database,原始表格: 请参见结果中的国家/地区列。 总之,我想列出每个国家人口最多的省份,然后列出每个国家人口第二大的省份 有人能帮我吗 通过对总体使用递减排序和limit子句,很容易获得威瑟尔列表。要获取这两个列表,可以对这两个列表使用并集: SELECT * FROM ( SELECT '1' as `rank_group`, `province`, `population`,
有人能帮我吗 通过对总体使用递减排序和limit子句,很容易获得威瑟尔列表。要获取这两个列表,可以对这两个列表使用并集:
SELECT *
FROM
(
SELECT
'1' as `rank_group`,
`province`,
`population`,
`country`
FROM `table` a
GROUP BY `province`,`country`
ORDER BY `population` DESC
LIMIT 0,1
)
UNION
SELECT *
FROM
(
SELECT
'2' as `rank_group`,
`province`,
`population`,
`country`
FROM `table` a
GROUP BY `province`,`country`
ORDER BY `population` DESC
LIMIT 1,1
)
ORDER BY `rank_group`,`population` DESC;
您的预期输出有两个差异
c2p1800
放在c3p2900
之前,我认为这是不正确的c2p1
,但它应该是c3p1
,我认为这是一个打字错误select t1.country,t1.province,t1.population
from tbl1 t1
inner join tbl1 t2
on t1.country=t2.country
where t1.population <= t2.population
group by t1.country,t1.province
order by count(*),t1.population desc;
说明:使用
where
conditionwhere t1进行自连接。请尝试以文本格式而不是图像格式提供数据,因为我们无法为图像复制文本来复制相同的数据。谢谢!这是真的。只有“完整”组“由”是disabled@WubinOuyang如果答案对你有用,请随意接受,这样问题就可以结束了。
+---------+----------+------------+
| country | province | population |
+---------+----------+------------+
| C1 | C1P3 | 1500 |
| C3 | C3P2 | 900 |
| C2 | C2P1 | 800 |
| C4 | C4P1 | 100 |
| C1 | C1P1 | 1000 |
| C2 | C2P2 | 500 |
| C3 | C3P1 | 100 |
| C1 | C1P2 | 500 |
+---------+----------+------------+