2009-05-26 12 views
18

Tôi có truy vấn nơi tôi muốn nhận ngày riêng biệt, số điện thoại được liên kết với những ngày đó và số lượng số điện thoại mỗi ngày.SQL riêng biệt và đếm

Ví dụ, tôi có một cơ sở dữ liệu với số ngày và số điện thoại và tôi muốn kết quả là

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

Tôi có thể lấy ngày và đếm với truy vấn này:

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

gì Tôi dường như không thể nhận được số điện thoại mà 'đếm' đang đếm. Tôi nghĩ rằng tôi cần một số loại chức năng tổng hợp để có được một ví dụ duy nhất của danh sách các giá trị duy nhất nhưng First() và một vài người khác chỉ ném một lỗi SQL. Tôi có cần truy vấn phụ không?

Trả lời

2

Đó là vì bạn đang nhóm theo ngày không phải bằng điện thoại.

Trong một nhóm ngày có thể có ba số khác nhau và SQL không thể biết được bạn muốn cái nào.

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

nên làm điều đó tôi nghĩ

7

Bạn có thể muốn thử một cái gì đó giống như

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

này sẽ cung cấp cho bạn một kiểm đếm của mỗi số điện thoại trên mỗi ngày, với bao nhiêu lần con số đó xuất hiện vào ngày đó.

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

(Bạn không cần phải DISTINCT với GROUP BY.)

0

Thử Sau

Count (điện thoại) TỪ cuộc gọi

sẽ cung cấp cho bạn Count biệt.