1

CustomerとParkingTransactionの2つのテーブルがあります。よく使う上位10社のお客様を紹介したいと思います。ParkingTrasactionテーブルの「CustomerKey」は、ParkingTransactionをCustomerに接続するFKです。私はParkingTransactionテーブルで最も使用されているCustomerKeyをカウントする次のコードを作成しましたが、正常に機能します...

SELECT TOP 10 CustomerKey
, count(*) as 'Usage'
  FROM ParkingTransaction
  GROUP BY CustomerKey
  HAVING (count(CustomerKey) > 0)
  ORDER BY 'Usage' DESC

これは私の出力です

出力

私が直面している問題はこれです。CustomerKeyだけで並べ替えるのではなく、CustomerテーブルからFirstNameフィールドとLastNameフィールドを取得したいのです。私はJOINSをいじりましたが、まだ解決策を考え出していません。

ありがとう!

4

2 に答える 2

1

MySQL はLIMITnotを使用しTOPます。

SELECT  a.FirstName, a.LastName,
        COUNT(*) as `Usage`
FROM    Customer a
        INNER JOIN ParkingTransaction b
            ON a.CustomerKey = b.CustomerKey
GROUP BY a.FirstName, a.LastName
ORDER BY `Usage` DESC
LIMIT 10

クエリは を使用してINNER JOINいるHAVING COUNT(*) > 0ため、この場合は不要です。

于 2013-01-18T00:06:16.330 に答える
1

1 つの方法を次に示します。

SELECT CustomerKey, c.firstname, c.lastname, count(*) as 'Usage'
FROM ParkingTransaction pt join
     customer c
     on pt.customerkey = c.customerkey
GROUP BY pt.CustomerKey, c.firstname, c.lastname, 
ORDER BY 'Usage' DESC
limit 10
于 2013-01-18T00:11:14.337 に答える