2017-05-10 16 views
0

ストアからの「トレンド」売上を分析するためのクエリを作成する必要があります。記事の組み合わせが買っているとき は基本的に私は例えば、発生を取得する必要があります:SQL SERVERデータベースのデータマイニングは、おそらく組み合わせを見つける

:記事0001は、それは非常におそらく記事0002は、も購入されていることである買っているとき が、私はのようなものを取得したいと思います
article a | article b | occurrences | 
--------- | --------- | ----------- | 
0001  | 0002  | 1 
0001  | 0003  | 0 
私は、のようなものを、それがすべてのチケットと各チケットに含まれている記事・コードを格納しているテーブルTicketDetailsを持って実際に

store | station | document | consecutive | article 
----- | ------- | -------- | ----------- | ------ 
w  | x  | y  | a   | 0001 
w  | x  | y  | a   | 0002 (same ticket, different article) 
w  | x  | y  | b   | 0003 

私は感じて、私はこのクエリを構築する方法上の任意の提案を教えてくださいちょっと失われた

注: すべてのチケットの上に示されているように、私はあなただけの自己参加したいと思いますW-X-Y-Z

+1

またはMS SQL Server? (関連していない製品にはタグを付けないでください) – jarlh

答えて

1

はチケットをマッチング、それ自体にTicketDetailsに参加しますが、別の記事

select t1.article 
     ,t2.article 
     ,Count(t1.article) 
from ticketdetails t1 
left join ticketdetails t2 
    on t1.store = t2.store 
     t1.station = t2.station 
     t1.document = t2.document 
     t1.consecutive = t2.consecutive 
     t1.article < t2.article 
group by t1.article, t2.article 
+0

とてもシンプルで便利です。ありがとう! – Angherq

+0

これは0個のオカレンスを返しません。 –

+0

はい、見て、私はこれが具体的に要求された結果の1つを欠場するのを見ます。 – Degan

1

最初の4列の組合せです。もしあなたがすべての記事を望むのであれば、順序で共起するものよりもむしろSQLはちょっとしたことです。

私はあなたが最初にすべてのペアを生成できるように、テーブルには、articlesと呼ばれていると仮定しましょう:あなたはMySQLを使用してい

select a1.article, a2.article, count(td2.article) as occurrences 
from articles a1 join 
    articles a2 
    on a1.article < a2.article left join -- (a, b) is the same as (b, a) 
    ticketDetails td1 
    on td1.article = a1.article left join 
    ticketDetails td2 
    on td2.article = a2.article and 
     td2.store = td1.store and 
     td2.station = td1.station and 
     td2.document = td1.document and 
     td2.consecutive = td1.consecutive 
group by a1.article, a2.article; 
+0

あなたのお返事ありがとうございましたGordon、私は約8時間何も質問しませんでした。問題は、ticketdetailsテーブルにはほぼ4ミリオンのレコードがあり、articlesテーブルには数千ものレコードがあることです。 とにかくあなたのアプローチが役に立つと思います! 大きなデータベースで何をすべきか考えていますか? – Angherq

関連する問題