【问题标题】:SQL distinct and countSQL 区分和计数
【发布时间】:2010-10-29 03:17:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql count aggregate distinct


    【解决方案1】:
    SELECT date, PhoneNumber, count(phone) AS count
        FROM calls
        GROUP BY date, PhoneNumber 
    

    我认为应该这样做

    【讨论】:

      【解决方案2】:

      你可能想尝试类似的东西

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

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

      【讨论】:

        【解决方案3】:
        SELECT date, phone, count(phone) AS count FROM calls GROUP BY date, phone
        

        (您不需要 DISTINCT 和 GROUP BY。)

        【讨论】:

          【解决方案4】:

          那是因为你是按 date 而不是 phone 分组的。

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

          【讨论】:

            【解决方案5】:

            试试下面的

            Count(phone) FROM calls

            会给你不同的计数。

            【讨论】:

              猜你喜欢
              • 2012-06-16
              • 2021-11-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多