选择按位置列分组的前10行的总和

时间:2014-03-05 14:47:28

标签: mysql

我有一张与销售它的员工配对的销售表以及在哪个位置。

+---------------+----------------------+-----------+-------------+
| Units         |  location            |  name     |     mnt     |
+---------------+----------------------+-----------+-------------+
| 5             |  abc                 |  bob      |  2014-03-01 |
| 3             |  abc                 |  tim      |  2014-03-01 |
| 4             |  xyz                 |  paul     |  2014-03-01 |
| 1             |  nyc                 |  joe      |  2014-03-01 |
+---------------+----------------------+-----------+-------------+

我希望获得销售额最高的商店(单位总和)。该查询应返回前10个商店,其销售的单位按降序排列。

我试过这个,但只返了1行,看起来也错了。

SELECT * FROM myTable WHERE region='NE' ORDER BY SUM(units) LIMIT 10

仅供参考:表中还有其他列,我省略了这些列,因为它们没有为问题增加太多价值。一个这样的列是where子句中的region列。

2 个答案:

答案 0 :(得分:1)

试试这个

SELECT SUM(units), myTable.* FROM myTable GROUP BY location ORDER BY SUM(units) DESC LIMIT 10

答案 1 :(得分:0)

这样的事情:

SELECT location, COUNT(Units) FROM myTable WHERE region='NE' GROUP BY location ORDER BY COUNT(Units) LIMIT 10