SQL如何查询一个列中对应的另一列的值
表:Column1Column2Column3a3值1b5值6a8值5c4值2b2值7T-SQL:SELECTColumn1,MAX(Column2)FROM[表]GRO...
表:
Column1 Column2 Column3
a 3 值1
b 5 值6
a 8 值5
c 4 值2
b 2 值7
T-SQL:
SELECT Column1, MAX(Column2) FROM [表]
GROUP BY Column1
结果:
a 8
b 5
c 4
问题:
我要让Column3列的值也显示出来,条件是只显示与前面两列对应的值
比如:
前面两列是 a 8 那么最后一列就要是 值5
要求:
尽量高效率算法,不用子查询最好
在线等答案~~~~满意立刻采纳~~~ 展开
Column1 Column2 Column3
a 3 值1
b 5 值6
a 8 值5
c 4 值2
b 2 值7
T-SQL:
SELECT Column1, MAX(Column2) FROM [表]
GROUP BY Column1
结果:
a 8
b 5
c 4
问题:
我要让Column3列的值也显示出来,条件是只显示与前面两列对应的值
比如:
前面两列是 a 8 那么最后一列就要是 值5
要求:
尽量高效率算法,不用子查询最好
在线等答案~~~~满意立刻采纳~~~ 展开
2个回答
2015-10-04
展开全部
mysql> select * from try;
+------+------+------+
| clm1 | clm2 | clm3 |
+------+------+------+
| a | 3 | 1 |
| b | 5 | 6 |
| a | 8 | 5 |
| c | 4 | 2 |
| b | 2 | 7 |
+------+------+------+
5 rows in set (0.00 sec)
mysql> create table tmp select clm1,clm2,clm3 from try order by clm1,clm2 desc;
Query OK, 5 rows affected (0.07 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select clm1,max(clm2),clm3 from tmp group by clm1;
+------+-----------+------+
| clm1 | max(clm2) | clm3 |
+------+-----------+------+
| a | 8 | 5 |
| b | 5 | 6 |
| c | 4 | 2 |
+------+-----------+------+
3 rows in set (0.00 sec)
mysql>
追问
请用T-SQL给我写下 谢谢~~
追答
我知道我能以我的方式解决了问题已经足够了
展开全部
这个与数据有关,单看现在这几条记录,c1有重复,c2、c3都没复复,那么要取c3可以把c3放到分组里,select Column1, MAX(Column2),column3 FROM [表]
GROUP BY Column1,column3
GROUP BY Column1,column3
追问
我要的是第三列为前面两列所对应的值
这个结果表我要的结果就是
a 8 值5
b 5 值6
c 4 值2
你这算法直接全输出就没意思了
追答
select a.c1,a.c2,b.c3 from (select c1,max(c2) as c2 from tbxxx group by c1) a left join tbxxx b on a.c1=b.c1 and a.c2=b.c2
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询