首页 新闻 搜索 专区 学院

mySQL 分组查询,根据未分组的字段,取最小值,同时对应取出id,这个语句怎么写

0
悬赏园豆:10 [已关闭问题] 关闭于 2017-02-28 14:19
 1 CREATE TEMPORARY TABLE tmp_table (
 2   id INTEGER not NULL,
 3     uname VARCHAR(10) NOT NULL,
 4     ucode VARCHAR(10) NOT NULL,
 5   uprice INTEGER NOT NULL
 6 );
 7 
 8 INSERT INTO tmp_table VALUES(
 9     6,
10     '张三',
11     '891',
12     19
13 );

数据集如上。按照uname,ucode分组,

我需要得到的结果是:

取出 uprice 最小值 和对应的那条数据的ID,如果是重复的,就取最小ID

效果图如下:

请各位大神帮忙看看,小弟不胜感激。

 

 

 

 

修行者V5的主页 修行者V5 | 初学一级 | 园豆:172
提问于:2016-12-01 10:42
< >
分享
所有回答(3)
0

SELECT ns.id, ns.name, ns.course, ns.score FROM ( SELECT id, name, course, score FROM score ORDER BY score DESC) AS ns GROUP BY ns.name ORDER BY ns.id;

段情 | 园豆:167 (初学一级) | 2016-12-01 10:47
0

select a.* from tmp_table a where (select count(1) from tmp_table b where b.uname=a.uname and b.ucode>=a.ucode)<=1 order by a.uname,a.ucode

Daniel Cai | 园豆:10424 (专家六级) | 2016-12-01 10:49
0

SELECT * FROM ( SELECT * FROM tmp_table ORDER BY uprice asc) as ns
GROUP BY ns.uname,ns.ucode

一楼的原理是挺对的,但是应该是升序。

xiao韩de博客 | 园豆:202 (菜鸟二级) | 2016-12-01 17:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册