我在表格中有数据。有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 |
|------------|-----------|--------|
答案 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;