sql查询 如何根据多个条件分组 筛选 需要的数据

请问如图示显示,如何通过sql只显示黄色数据条件标准:如果驾校、身份证、日期、状态均一致保留id做大的如果身份证和日期同时一致按状态(办结、待受理、退办)的优先级保留一条... 请问 如图示显示,如何通过sql只显示黄色数据 条件标准:如果驾校、身份证、日期、状态 均一致保留id做大的如果身份证和日期同时一致按状态(办结、待受理、退办)的优先级保留一条数据(办结优先级最高)如果身份证一致、日期不一致保留日期最大的数据
请提供完整sql语句
展开
 我来答
xiang556ck
2017-03-22 · 超过80用户采纳过TA的回答
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:116万
展开全部
用order by吧....然后加if参数。。。

感觉group by貌似可以,只有人名相同的才需要筛选一个信息,那可以按人名或者身份证分组下,然后取一个id最小值。
追问
简单的 group by 实现不了
bdzd19933130
2017-03-24 · TA获得超过136个赞
知道小有建树答主
回答量:87
采纳率:100%
帮助的人:38.5万
展开全部
SELECT MAX(id),驾校,身份证,姓名,类型,MAX(日期),CASE WHEN MAX(状态)<>MIN(状态) 
THEN '办结' ELSE MAX(状态) END 
FROM TABLE GROUP BY 驾校,身份证,姓名,类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
砍出平成第一斧58
2017-03-23 · TA获得超过1567个赞
知道大有可为答主
回答量:2321
采纳率:86%
帮助的人:1188万
展开全部
select 表名 where id in (select max(id) from 表名 group by 驾校、身份证、日期、状态 )
union
其他条件的
更多追问追答
追问

主要是后面两个条件不知道怎么弄,

办结、待受理、退办 中保留优先级最高的

身份证一致、日期不一致保留日期最大的数据

追答
优先级怎么确定?不行就加个字段,123的顺序分别表示办结、待受理、退办优先级,高的放前面
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式