我有一个表雇员,有两列-empid(主键),name。假设它有三行以下。
$('.resumegame').on('click',function(){
var gameId = $(this).data('id');
// Do whatever you want here,
// you know the id of the button that has been clicked via the data-id attribute
});
如何编写select语句来选择记录,避免两行有重复的empid。我使用的查询如下:
EmpID Name
---------------
11 Name1
12 Name2
11 Name3
但是这个查询会给出
select empid, name
from(select empid, name, row_number() over(partition by empid order by empid desc) rnk
from t)a
where a.rnk=1
结果。但我需要的只是
EmpID Name
---------------
11 Name1
12 Name2
答案 0 :(得分:0)
SELECT max(empid) as empid, name from employee group by name having count(distinct empid) < 2
不会有效吗?
答案 1 :(得分:0)
尝试此查询,这将有效,并为您提供第12行Name2
从员工a中选择empid,name 加入( 从员工中选择empid,count(empid)作为count1 由empid组成的 在a.empid = b.empid
上有计数(empid)= 1)b答案 2 :(得分:0)
select empid, name
from(select empid, name,count(*) over(partition by empid) cnt from t) t
where cnt=1
答案 3 :(得分:0)
使用NOT EXISTS
的{{3}}可能是最快的方法:
SELECT empID, Name
FROM T
WHERE NOT EXISTS (SELECT 1 FROM T AS T2 WHERE T2.EmpID = T.EmpID AND T2.Name <> T.Name);
我没有进行任何测试,因此优化器可能能够使用count = 1
操作生成反半连接,但这使其有可能获得该计划。< / p>