我有一个查询,我希望获得不同的日期,与这些日期相关联的电话号码以及每个日期的电话号码计数。
例如,我有一个包含日期和电话号码的数据库,我希望结果是
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
我无法得到的是“计数”正在计算的电话号码。我想我需要某种聚合函数来获取唯一值列表的单个实例,但First()和其他一些只抛出SQL错误。我需要子查询吗?
答案 0 :(得分:29)
SELECT date, PhoneNumber, count(phone) AS count
FROM calls
GROUP BY date, PhoneNumber
我应该这样做
答案 1 :(得分:7)
您可能想尝试类似
的内容SELECT Date, Phone, Count(*) As Count From Calls GROUP BY Date, Phone
这将为您提供每个日期的每个电话号码的计数,以及该号码在该日期出现的次数。
答案 2 :(得分:4)
SELECT date, phone, count(phone) AS count FROM calls GROUP BY date, phone
(你不需要DISTINCT和GROUP BY。)
答案 3 :(得分:2)
那是因为您按日期分组,而不是电话。
在一个日期分组中,可能有三个不同的数字,SQL无法知道您想要哪一个。
答案 4 :(得分:0)
尝试以下
计算(电话)FROM电话
会给你不同的数量。