その表題が望むものを伝えるかどうかはわかりません。列が別々の表に共通する異なる表の異なる値をカウントします
電話記録を含む2つのテーブル(アカウントごとに1つずつ)があり、それぞれのアカウントに共通する番号のコールカウントを取得したいと考えています。以下のようなもので照会
表1
Number ...
8675309
8675309
8675310
8675310
8675312
表2
Number ...
8675309
8675309
8675309
8675310
8675311
:つまり
SELECT DISTINCT table1.number, COUNT(table1.number), COUNT(table2.number) FROM table1, table2 WHERE table1.number = table2.number GROUP BY table1.number
うまくいけば生成します:
8675309|2|3
8675310|2|1
を10
代わりに、それは現在のようなものを生成します。
それは各テーブルからのカウントを掛けるように見える8675309|6|6
8675310|2|2
。おそらく、私はこの目標のためにテーブルに参加していないからです。または、私がCOUNT(table1.number)を求めるときには、テーブルはすでにいくつかの乗法的な方法で結合されているからです。 JOINではなく、「table2.number CONTAINS(table1.number)」のようなものを読み込む必要がありますか?
ヒント?
ありがとうございます、あなたの最初のソリューションは素晴らしい作品です。私はこのようなユニークな列を持っているので、作業するための2番目のオプションを取得しようとしていますが、タイプされているので、「:構文エラー」に「エラー:近く」が表示されます。私は "内部"の後に "結合"を追加しようとしましたが、それはちょうどそれぞれの数のためのカウントではなく、合計の数を示すようです。 そこにいくつかの光を当てることができれば嬉しいですが、最初の解決策は素晴らしいです。 ありがとうございます。 – fracai
私はその2番目のクエリを修正しました。あなたが見つけたとき、私は "参加"を忘れていました。また、必要な 'group by'節も欠席しました。改訂版は今すぐ動作するはずです。 –
優秀、ありがとう。 – fracai