如何将排序结果用作另一个MySQL语法的ORDER BY
基础?
例如,
我查询了“记录'重复次数”的顺序,记录的列名为country
。 SQL语法如下所示:
SELECT country, count( * ) AS count
FROM table1
GROUP BY country
ORDER BY count DESC
结果如下:
国计数
======================
美国 13679
英国 8060
德国 6245
俄罗斯联邦 6076
加拿大 3388
荷兰 4580
但现在我想列出另一个数据表,其中country_to_live
列按上面的结果排序。语法如下所示:
SELECT name,age,salary FROM table2 ORDER BY (country_to_live ...)
表2可能如下所示:
名年龄薪水country_to_live
=============================================== =============
John 25 4000美国
Merry 27 3500美国
比尔26 4200德国
珍26个5000荷兰
阿贝尔34 4700加拿大
Leo 31 3400俄罗斯联邦
Karen 23 7100英国
西特35 5600加拿大
我想要的结果是:
名年龄薪水country_to_live
=============================================== =============
John 25 4000 美国
Merry 27 3500 美国
Karen 23 7100 英国
比尔26 4200的德国
Leo 31 3400 俄罗斯联邦
阿贝尔34 4700的加拿大
西特35 5600的加拿大
珍26 5000的荷兰
那么(country_to_live ...)
是什么?
答案 0 :(得分:0)
将count
结果查询join
与table2
order
和count
结果SELECT t2.name, t2.age, t2.salary, t2.country_to_live
FROM table2 AS t2
LEFT JOIN ( SELECT country, COUNT(*) AS country_count
FROM table1 GROUP BY country
) AS t1 ON t2.country_to_live = t1.country
ORDER BY t1.country_count DESC, t2.name ASC;
一起使用。
示例:
nvarchar