22

我有一个查询,我想在其中获取不同的日期、与这些日期关联的电话号码以及每个日期的电话号码计数。

例如,我有一个包含日期和电话号码的数据库,我希望结果是

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 错误。我需要子查询吗?

4

5 回答 5

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

我认为应该这样做

于 2009-05-26T23:39:34.273 回答
8

您可能想尝试类似的东西

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

这将为您提供每个日期的每个电话号码的计数,以及该号码在该日期出现的次数。

于 2009-05-26T23:39:57.643 回答
4
SELECT date, phone, count(phone) AS count FROM calls GROUP BY date, phone

(你不需要 DISTINCT 和 GROUP BY。)

于 2009-05-26T23:41:42.130 回答
2

那是因为您是按日期而不是电话分组。

在一组日期中可能有三个不同的数字,SQL 不可能知道您想要哪一个。

于 2009-05-26T23:38:45.757 回答
0

尝试以下

计数(电话)来自呼叫

会给你不同的计数。

于 2013-12-19T16:42:37.563 回答