选择两列上重复的行

时间:2017-03-08 16:38:54

标签: sql ms-access

我在表格中有数据。有3列(ID,Interval,ContactInfo)。此表列出了所有手机通讯录。我试图计算在同一天拨打两次的电话号码,并且不知道如何解决这个问题。我可以获得相同数字的重复条目,但它在日期上不匹配。我到目前为止的代码如下。

SELECT ContactInfo, COUNT(Interval) AS NumCalls
FROM AllCalls
GROUP BY ContactInfo
HAVING COUNT(AllCalls.ContactInfo) > 1

我想让它返回日期,该日期的通话次数(如果超过1)和电话号码。

示例数据:

|ID      |Interval    |ContactInfo|
|--------|------------|-----------|
|1       |3/1/2017    |8009999999 |
|2       |3/1/2017    |8009999999 |
|3       |3/2/2017    |8001234567 |
|4       |3/2/2017    |8009999999 |
|5       |3/3/2017    |8007771111 |
|6       |3/3/2017    |8007771111 |
|--------|------------|-----------|

预期结果:

|Interval    |ContactInfo|NumCalls|
|------------|-----------|--------|
|3/1/2017    |8009999999 |2       |
|3/3/2017    |8007771111 |2       |
|------------|-----------|--------|

2 个答案:

答案 0 :(得分:0)

正如juergen d建议的那样,您应该尝试在GROUP BY中添加Interval。像这样:

 SELECT AC.ContactInfo
    ,       AC.Interval
    ,       COUNT(*) AS qnty
    FROM    AllCalls AS AC
    GROUP BY AC.ContactInfo
    ,       AC.Interval
    HAVING  COUNT(*) > 1

答案 1 :(得分:-1)

代码应该是这样的: 通过Interval选择Interval,ContactInfo,count(ID)AS来自AllCalls组的NumCalls,具有计数(ID)> 1的ContactInfo;