0

私はテーブルを持っています

Order(orderid, customerid, billingcompanyname, billingfirstname,
 billinglastname, billingcountry, shipcountry, paymentamount, 
 creditcardtransactionid, orderdate, creditcardauthorizationdate, orderstatus, 
 total_payment_received, tax1_title salestax1) 

customeridは外部キーです。

会社名と出力のすべてのフィールドを使用して、個々の顧客が行った注文の数が必要です。

4

4 に答える 4

2

これを試して:

SELECT o1.cnt, o2.*
FROM (
    SELECT COUNT(*) cnt, customerid FROM order GROUP BY customerid
) o1
INNER JOIN order o2 on o1.customerid = o2.customerid

またはさらに良い:

SELECT order.*, COUNT(*) OVER (PARTITION BY customerid) AS cnt
FROM order
于 2012-04-11T08:44:33.537 に答える
1

注文テーブルにcompanyNameフィールドがありますか?注文テーブルにcompanyテーブルとcompanyIdが必要です。

とにかく、このシナリオでは(そして顧客が常に同じ会社に属している場合)、これを簡単に行うことができます:

select customerid, billingcompanyname, count(*)
from orders
group by customerid, billingcompanyname
于 2012-04-11T09:38:54.107 に答える
1

このような結果を得るにGROUP BYは、 を実行する必要がありますが、 は の個別の値で実行する必要があるため、結果セット内に を含めるcustomeridことはできません。orderidCOUNTorderid

于 2012-04-11T08:45:01.213 に答える