显示一个值在mysql查询中是否唯一



我有一个MySQL查询。在这个查询中,我想创建一个列,在其中我可以显示列Phone中的值是否唯一。如何做到这一点?

这是一个查询:

SELECT ID, Phone
FROM tbltest

我们可以在这里使用COUNT()作为分析函数:

SELECT ID, Phone,
CASE WHEN COUNT(*) OVER (PARTITION BY Phone) = 1 THEN 'unique' END AS label
FROM tbltest
ORDER BY ID;

以下是一个应该在早期版本的MySQL上工作的版本:

SELECT t1.ID, t1.Phone,
CASE WHEN t2.cnt = 1 THEN 'unique' END AS label
FROM tbltest t1
INNER JOIN
(
SELECT Phone, COUNT(*) AS cnt
FROM tbltest
GROUP BY Phone
) t2
ON t2.Phone = t1.Phone;

最新更新