我正在与SQL查询斗争,我无法解决它。有这样一张桌子:
SELECT DISTINCT Field1, Field2
FROM myTable
WHERE Field3 = 'value';
ID Field1 Field2
1 Yes Info
1 No Info
2 Yes Info
3 No Info
3 Yes Info
4 No Info
我希望得到一个结果查询,其中没有任何重复值。如果有重复值,我希望得到“是”,而在其他情况下,我希望在该字段中有现有值(是或否)。
ID Field1 Field2
1 Yes Info
2 Yes Info
3 Yes Info
4 No Info
提前致谢!
答案 0 :(得分:0)
按id
分组,它会自动完成工作
SELECT DISTINCT Field1, Field2 FROM myTable WHERE Field3 = 'value' group by id
答案 1 :(得分:0)
您可以使用GROUP BY查询:
SELECT CASE WHEN COUNT(* ) > 1 THEN 'Yes' ELSE Field1 END AS Field1, Field2 FROM myTable GROUP BY 2
答案 2 :(得分:0)
如果您希望针对与ID对应的给定记录对优先选择Yes
而不是No
,那么您可以选择Field1
的最大值(以及{{的最大值} 1}}):
Field2
答案 3 :(得分:0)
select DISTINCT
ID,
case
when (group_concat(Field1))="YesNo" then "Yes"
when (group_concat(Field1))="NoYes" then "Yes"
else (group_concat(Field1))
end as Field1,
Field2 from
(SELECT DISTINCT ID,Field1, Field2
FROM myTable
WHERE Field3 = 'value')A
group by ID