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 に答える