我有一个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;