sql多条件分组查询,求sql语句。

有表tabelnamedate1a2012-01-302a2012-01-173b2012-01-174c2012-01-205d2012-01-296a2012-01-... 有表tabel

name date
1 a 2012-01-30
2 a 2012-01-17
3 b 2012-01-17
4 c 2012-01-20
5 d 2012-01-29
6 a 2012-01-01
7 c 2012-01-14

查询得到以下分组排序,按name分组,并且组与组之间按date排序。

name date
1 a 2012-01-30
2 a 2012-01-17
3 a 2012-01-01
4 d 2012-01-29
5 c 2012-01-20
6 c 2012-01-14
7 b 2012-01-17
展开
 我来答
千锋教育
2016-01-03 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
sql多条件分组查询举例:
比如有两张表:
表一:
姓名 分数
——————
李一 2
李二 1
李三 1
张一 3
张二 2
张三 2
……

表二:


——



要查询表二中的姓的数据对表一进行分组,然后将分数统计出来。

sql语句写法如下:
SELECT
b. NAME,
sum(a.score) AS 分数
FROM
tb1 a
LEFT JOIN tb2 b ON SUBSTR(a.name FROM 1 FOR 1)= b.`name`
GROUP BY
b. NAME;

这个是Mysql的写法 Oracle把SubStr函数改一下就可以了。
糍糍1025
推荐于2018-02-27
知道答主
回答量:54
采纳率:0%
帮助的人:27.5万
展开全部
select t.*
from (select a.name, a.date
from testU a
group by a.name, a.num
order by a.name, a.num desc) t
left join
(select name, max(date) date from testU group by name
) b on t.name = b.name
order by b.date desc, t.datedesc;

弄了半天才出来,试了可以,望采纳!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小狂中E
2013-10-12 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1011万
展开全部

分组是用来聚集汇总的,如求平均、求总和、求最大等
你这个不需要分组,直接排序就可以了

select name, date from table order by name asc, date desc

 如果每组要按date的降序排列,也挺简单

with t1 as (select name, max(date) md from table group by name,

t2 as (select table.name name, table.date date, t1.md from table join t1 on table.name=t1.name

order by t1.md)

select name,date from t2

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zh857872
2013-10-12 · TA获得超过1415个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:297万
展开全部
楼主,标准的SQL如下:
select name,date from table group by name,date;

请采纳!
更多追问追答
追问
group by 之后就不是原来的数据量了  只有a b c d4列了。我并不是要合并,而是分组。
追答

不是的,完整的记录数,你执行下就知道了!!!!

 更为完善的SQL:

select name,dddd from ttt group by name,dddd order by name,dddd desc;

执行前记录:

 

执行后记录:

这下清楚了吧!

有问题欢迎提问,满意请采纳!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我·是谁是我
2013-10-12 · TA获得超过438个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:268万
展开全部
select name , date from tabel order by name , date
更多追问追答
追问
试过,不好用。这种查询的结果是优先name  虽然name在一起,但是顺序也是按name来排的
追答
你的意思是name不用排序是吧   那就会有点麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式