私はIBMによるDB2を使用しています。しかし、私はこれが各DBメーカーによって追加された追加機能を使用せずにSQL標準を使用して行われることを望んでいます。共通の構成要素については、どのように2列に基づいて値を見つけるには? SQL
私の問題:
すべてのCID(顧客ID)のために、私はほとんどの購入が行われたからCLUBを見つける必要があります。以下の表に
、顧客#1(「CID = 1」) 'ダイジェスト読者のクラブから最も本を買いました。
Find most frequent value in SQL columnしかしCID = 2は、(私にとっては)はるかに困難である、と私は立ち往生午前:私は使用して行われ、この部分を取得することができます。 「CID = 2」のために我々は「CLUB」列の下に、最も一般的に発生刺さは「オプラ」と「YRBゴールド」の間のタイであることがわかります - しかし、我々は「QNTY」欄を見ると、それは人々に(明らかになり)は、 'cid = 2'の最終回答は 'YRB_gold'です。 「YRB_GOLD」は5冊を販売しました。「OPRAH」は4冊しか販売していませんでした。
は、私がここにも 'CID = 3' を置く:
は47人の顧客(CID)があります。私の質問は、どのようにすべての「CID」を踏んで、どのクラブを「CLUB」の中で最も一般的に発生している文字列を考慮すると同時に、すべてのクラブの「QNTY」を把握していますか?あなたが助けを選ぶならば、最もOEMの中立的な答えを提供できますか?前もって感謝します。
****************************** EDIT#1 ************* ****************************以下の答えを
感謝。現在、私はそれを動作させる問題を抱えています。
テーブル名は 'yrb_purchase'です。 私はすべてを入力すると: SELECT cid, club, qnty AS q1 FROM (SELECT cid, club, sum(qnty) AS q2, row_number() OVER (PARTITION BY cid ORDER BY sum(q2) DESC) AS seqnum FROM yrb_purchase GROUP BY cid, club) cc WHERE seqnum = 1
私はエラーを取得する:SQL0206N "Q2" is not valid in the context where it is used. SQLSTATE=42703
は現在、これを修正する方法を把握しようとに取り組んで。