验证每个记录的每个记录具有相同的值

时间:2018-02-15 04:21:57

标签: sql sql-server

ID  |             LastAccessed         |   loginID   |
======================================================
1   |      02-15-2018 16:00:45:300     |    admin    |
2   |      02-15-2018 16:00:45:300     |    admin    |
3   |      02-15-2018 18:44:55:108     |    johny    |
4   |      02-15-2018 11:52:34:206     |    sarah    |
5   |      02-15-2018 11:52:34:206     |    sarah    |
6   |      02-15-2018 11:52:34:206     |    sarah    |
7   |      02-15-2018 11:52:34:206     |    sarah    |

在此表中,我想验证每个loginID对于所有相应的LastAccessed值是否具有相同的值。

例如,我们发现adminsarah具有相同的LastAccessed值。我猜我们可以得到两个计数并验证它们是一样的吗?

我需要验证一组大约8,000条记录。

3 个答案:

答案 0 :(得分:3)

或者您可以按照下面的组合尝试不同的组

select loginId 
from table
group by loginId
having count(distinct LastAccessed) >1;

答案 1 :(得分:1)

您可以使用以下方式获取具有不同值的loginId

select loginId
from t
group by loginId
having min(LastAccessed) <> max(LastAccessed);

答案 2 :(得分:1)

另一种方法,您可以尝试以下方法。

SELECT Count(*) DistCount ,LoginId,LastAccessed         
FROM [LOGIN]
GROUP BY LastAccessed ,LoginId
HAVING COUNT(*) > 1        

此查询将为您提供具有多个LoginId,LastAccessed组合的所有LoginId。

如果您只需要Login作为输出。您可以像下面一样更改查询。

SELECT DISTINCT LoginId
FROM 
(
    SELECT Count(*) DistCount ,LoginId,LastAccessed         
    FROM [LOGIN]
    GROUP BY LastAccessed ,LoginId
    HAVING COUNT(*) > 1       
) T
相关问题