私はトランザクションと最もよく使用されているクレジットカードを提供している声明の表を持っています。最も頻繁に発生する
CARDBRAND CARDUSED MERCHNAME
----------------------------------------
AMEX 182345 Gasstation
VISA 70943 ....
私はトランザクションと最もよく使用されているクレジットカードを提供している声明の表を持っています。最も頻繁に発生する
CARDBRAND CARDUSED MERCHNAME
----------------------------------------
AMEX 182345 Gasstation
VISA 70943 ....
SELECT CARDBRAND
,count(*) as cardused
,MERCHNAME
FROM INFO c
LEFT JOIN paytb t
on c.CONT_ID = t.CONT_ID
GROUP BY CARDBRAND,
MERCHNAME
ORDER BY count(*) desc;
提案:AMEX、VISA ...
SELECT CARDBRAND,
count(*) as cardused
from INFO c
left join paytb t
on c.CONT_ID = t.CONT_ID
GROUP BY CARDBRAND
ORDER BY 2 desc;
は、今私は、ほとんどの場合、クレジットカードでの取引で発見されたお店のMERCHNAMEの列を追加します:混乱を避けるために、列番号ではなくORDERBY句でColumnNameまたは関数を使用することを常に推奨します。
まず、あなたの正しいクエリは次のようになります。
select c.cardbrand, count(t.cont_id) as cardused
from info c left join
paytb t
on c.cont_id = t.cont_id
group by c.cardbrand;
そうでない場合は、あなたが使用されていないカードブランドの「0」を得ることはありません。加盟店情報について
、あなたはウィンドウ関数を使用することができます。
select cardbrand, total_cardused, merchant
from (select c.cardbrand, t.merchant, count(t.cont_id) as cardused,
sum(count(t.cont_id)) over (partition by c.cardbrand) as total_cardused,
row_number() over (partition by c.cardbrand order by count(t.cont_id) desc) as seqnum
from info c left join
paytb t
on c.cont_id = t.cont_id
group by c.cardbrand, t.merchant
) cm
where seqnum = 1
group by c.cardbrand;
SQLCODE = -206、エラー:C.CARDBRANDは有効ではありません 文脈は使用されています – bastel
これは、最も使用されるカードで、すべてのmerchnamesを配っているテーブル – DCR