作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
表格看起来像这样:(是的,它们是 &
符号。忽略破折号)
ID-VALUE-NUM
-1-YES----2-
-1-NO-----3-
-2-YES----1-
-2-NO-----1-
-3-&&&----1-
-3-&------2-
-3-&&-----2-
我需要做什么:
对于每个 ID
,我需要获取具有最高 NUM
的值,在平局且 VALUE
具有 的情况下>&
s 然后它会选择最短的。如果值为 YES/NO
,那么它将选择 YES
。
想要的结果
ID-VALUE-NUM
-1-NO-----3-
-2-YES----1-
-3-&------2-
我想我必须在某处放置一个 IF
语句,但我不确定如何。
最佳答案
这是一种方法。连接查找最大 num
。然后 select
使用逻辑根据您的规则选择正确的值:
select t.id,
(case when count(*) = 1 then min(value)
when max(value like '%&%') > 0 then min(value)
when max(value = 'Yes') > 0 and max(value = 'No') > 0 then 'Yes'
else max(value)
end) as value,
t.num
from t join
(select id, max(num) as maxnum
from t
group by id
) tm
on t.id = tm.id and t.num = tm.maxnum
group by t.id, t.num
关于mysql - 如何将 IF ELSE 写入此查询以使其工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18139419/
我是一名优秀的程序员,十分优秀!