0
Select Distinct id as personID, count(tid) as Sales
From salesTable
Group by personID;

当前结果是:(我只需要显示最高销售额。)

 personID  | Sales
_____________________
   1000      | 2
   1020      | 1
   1040      | 2
   1060      | 1
   1080      | 2
   1140      | 1
   1160      | 1
   _________________

salesTable 如下所示:

id  | tid
_________
1000|201
1020|202
1040|203
1000|204
1060|205
1080|206
1040|207
1080|208
1140|209
1160|210

我想要的结果应该是这样的:

personID  | Sales
_____________________
   1000      | 2
   1040      | 2
   1080      | 2
  _________________
4

2 回答 2

3
select  id as personID
,       count(tid) as Sales
From    salesTable
group by 
        id
having  count(tid) =
        (
        select  max(Sales)
        from    (
                select  count(tid) as Sales
                from    salesTable
                group by
                        id
                ) SubQueryAlias
        )
于 2013-03-17T20:05:15.140 回答
1

稍微简单和有序:

SELECT id as personID
      ,count(tid) AS Sales
FROM   salesTable
GROUP  BY id
HAVING count(tid) =
   (
   SELECT count(tid)
   FROM   salesTable
   GROUP  BY id
   ORDER  BY count(tid) DESC
   LIMIT  1
   )
ORDER  BY personID;

->SQLfiddle 演示。

于 2013-03-17T21:19:05.977 回答