sql题:如何获取分组后,里面的某些指定行的数据。

img

第三题如何解答?
我只能写下如下语句,但是没有的得到ID,花名,因为这两个字段聚合下可能存在多个值,百度说用any_value(),但是不是最大花瓣数的ID,花名。

img

如果是mysql 8.0以上,可以用开窗函数row_number进行分组排序

select fid,name,angs,color,ct from (
select f.*,ifnull(s.angs,0) angs,
row_number() over (partition by color order by ifnull(s.angs,0) desc) rn,
count(1) over (partition by color ) ct
from flower f left join shape s on f.fid=s.fid)
where rn=1

group by having
可以对你分组后的数据进行过滤。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632