我在表格中有两列感兴趣的内容。它们是“PersonID”,是每个人的唯一ID和“性别”列。
我的表每个人都有多行,因为每行反映了他们名下的政策。 但是,对于每个人,我都注意到了一些数据质量问题,其中他们的性别被记录为某些行的“男性”,然后是其他人的“女性”
如何编制显示已记录为男性和女性的“PersonID”的所有行的列表?
所以我的表在当下看起来的一个例子是这样的: 4439; 1 4439; 1 4439; 1 4439; 1 4439; 1 4439; 0 4439; 0
其中4439 = PersonId,1 =男性(0 =女性)
我只想要一个列表,为我提供性别字段中同时包含1和0的所有PersonID
答案 0 :(得分:1)
更新
SELECT DISTINCT personid FROM(
SELECT PersonID
, RANK() OVER (partition by personid order by gender) as rnk
FROM table t
) i
WHERE i.rnk > 1
而不是像@Dan指出的那样。
SELECT PersonID
FROM table t
WHERE t.gender = '0' OR t.gender = '1'
GROUP BY PersonID
HAVING COUNT(*) > 1
如果您需要其他信息:
SELECT p.Name, p.lastName, p.DOB
FROM table p
WHERE p.PersonID IN
(
SELECT PersonID
FROM table t
WHERE t.gender = '0' OR t.gender = '1'
GROUP BY PersonID
HAVING COUNT(*) > 1
) i
答案 1 :(得分:0)
这可以解决你,
SELECT ID FROM POLICYTABLE
WHERE GENDER=0 OR GENDER=1
GROUP BY ID
HAVING COUNT(*)>1
答案 2 :(得分:0)
试试这个。
SELECT PersonID
FROM
(
SELECT PersonID,Gender
FROM table
GROUP BY PersonID,Gender
) as DATA
GROUP BY PersonID
HAVING COUNT(*) > 1
答案 3 :(得分:0)
您只需计算每个人的不同性别代码的数量:
let toggle_event = null;
try {
toggle_event = new Event("toggle");
}
catch (error) {
toggle_event = document.createEvent("Event");
let doesnt_bubble = false;
let isnt_cancelable = false;
toggle_event.initEvent("toggle", doesnt_bubble, isnt_cancelable);
}
// disclosure_control is a details element.
disclosure_control.dispatchEvent(toggle_event);