2

SQL に関するすべての質問を検索したところ、不要なものがすべて見つかったので、質問する必要があります。私は頭がロックされています - カウントと合計とグループと結合がすべて一緒にスローされていることを知っています。

2 テーブル

  1. CustomerTable - CustID、CustQuality (値は良い顧客、悪い顧客、新しい顧客など)
  2. PurchaseTable (PurchID、PurchItem、PurchDate)

過去 30 日間に、良い顧客、悪い顧客、新規顧客による購入数を数えようとしています。

参加やグループカウントなどを試しましたが、取得し続けます:

  • GoodCustomer - CustID2 - 1 件の購入
  • GoodCustomer - CustID3 - 3 購入
  • GoodCustomer - CustID4 - 2 購入
  • 悪い顧客 - CustID7 - 2 購入
  • 悪い顧客 - CustID1 - 4 購入
  • 新規顧客 - CustID9 - 1 件の購入
  • NewCustomer - CustID4 - 4 購入など

総合結果だけ欲しい

  • 3 つの優良顧客が 6 回の購入を行いました
  • 2 悪質な顧客が 6 回購入
  • 2 人の新規顧客が 5 回購入した

THEN FOR ADDITIONAL functioning... 私も参加する必要がある 3 番目のテーブルがあります。CustomerLocation (CLID、CLLocation (North、South、East、West の値))

したがって、次のグループの内訳を知りたい場合は、

  • 3人の優良顧客が6回の購入を行いました - 1人の顧客は北部から、2人の顧客は南部から
  • 2 人の悪質な顧客が 6 回の購入を行った - 東部から 5 人の顧客、西部から 1 人の顧客
  • 2 人の新規顧客が 5 回の購入を行いました - 南部からの 2 人の顧客

最後の新しいクエリは次のようになります... WHERE CLLocation = South

地域別に調べてみると・・・

  • 1 優良顧客 3 購入
  • 2 つの悪い顧客が 2 回の購入を行った
  • 0 新規顧客 0 購入

私は多くのことを求めていることを知っています - しかし、どんな助けも大いに感謝します!

4

2 に答える 2

0

これはあなたの最初の質問に答えるはずです

SELECT COUNT(DISTINCT c.CustID), CustQuality, COUNT(PurchID) FROM CustomerTable c
INNER JOIN PurchaseTable p ON c.CustID = p.CustID
GROUP BY CustQuality
于 2012-11-04T20:02:20.400 に答える
0
SELECT C.CustQuality, COUNT(DISTINCT c.CustID) AS tot_Customer, COUNT(PurchID) AS tot_Purch
FROM CustomerTable C, PurchaseTable P
WHERE C.CustID = P.PurchCustID
GROUP BY C.CustQuality;

SELECT C.CustQuality, CL.CLocation,  COUNT(DISTINCT c.CustID) AS tot_Customer, COUNT(PurchID) AS tot_Purch
FROM CustomerTable AS C, PurchaseTable AS P, CustomerLocation AS CL
WHERE C.CustID = P.PurchCustID AND CL.LCTCustID = C.CustID
GROUP BY C.CustQuality, CL.CLocation;

SELECT C.CustQuality, CL.CLocation,  COUNT(DISTINCT c.CustID) AS tot_Customer, COUNT(PurchID) AS tot_Purch
FROM CustomerTable AS C, PurchaseTable AS P, CustomerLocation AS CL
WHERE C.CustID = P.PurchCustID AND CL.LCTCustID = C.CustID AND CL.CLocation='North'
GROUP BY C.CustQuality;
于 2012-11-04T20:18:12.820 に答える