[英]SQL query to only return the rows that have the highest value in a certain column
[英]SQL Query to only return certain rows depending on value of column
我有一个类似于以下表格:
cycle | id | name
------|-------|------
0 | 0012 | bob
s | 0012 | bob
1 | 0012 | bob
0 | 6208 | sally
1 | 6208 | sally
0 | 3276 | jane
s | 3276 | jane
1 | 3276 | jane
0 | 8736 | harry
s | 8736 | harry
我需要一个查询,将导致:
cycle | id | name
------|-------|------
s | 0012 | bob
0 | 6208 | sally
s | 3276 | jane
s | 8736 | harry
因此,仅返回“循环”值为“ s”的行,除非特定“ id”没有“ s”的值,在这种情况下,它应返回“循环”值为“ 0”的行。
SELCET cycle, id, name from tbl1 as t1 where cycle='s' or
(cycle=0 and (select count(cycle) from tbl1 as t2 where t2.id = t1.id and t2.cycle='s') <= 0)
group by t1.cycle,t1.id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.