web-dev-qa-db-ja.com

SQLの区別とカウント

個別の日付、それらの日付に関連付けられている電話番号、および日付ごとの電話番号の数を取得するクエリがあります。

たとえば、日付と電話番号を含むデータベースがあり、結果を

9/2005      5554446666    3
9/2005      4445556666    1
10/2005     1112223333    1
11/2005     2223334444    2

このクエリで日付とカウントを取得できます。

SELECT DISTINCT date, count(phone) AS count
FROM calls
GROUP BY date

取得できないように見えるのは、「count」がカウントしている電話番号です。一意の値のリストの単一のインスタンスを取得するには、何らかの集計関数が必要だと思いますが、First()と他のいくつかはSQLエラーをスローするだけです。サブクエリは必要ですか?

20
Ryan George
SELECT date, PhoneNumber, count(phone) AS count
    FROM calls
    GROUP BY date, PhoneNumber 

そうすべきだと思います

30
Tetraneutron

あなたは次のようなことを試してみたいかもしれません

SELECT Date, Phone, Count(*) As Count From Calls GROUP BY Date, Phone

これにより、各日付の各電話番号の集計と、その日付にその番号が表示された回数がわかります。

8
Kibbee
SELECT date, phone, count(phone) AS count FROM calls GROUP BY date, phone

(GROUP BYでDISTINCTを使用する必要はありません。)

4
stuartd

phoneではなくdateでグループ化しているためです。

日付を1つのグループにまとめると、3つの異なる数値が存在する可能性があり、SQLで目的の数値を知ることは不可能です。

2
joshcomley

以下をお試しください

通話件数(電話)

Distinct Countを提供します。

0
Jack Hogue