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

要求:
尽量高效率算法,不用子查询最好

在线等答案~~~~满意立刻采纳~~~
展开
 我来答
匿名用户
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给我写下   谢谢~~
追答
我知道我能以我的方式解决了问题已经足够了
xlsoftware
推荐于2017-12-16 · TA获得超过531个赞
知道小有建树答主
回答量:641
采纳率:81%
帮助的人:268万
展开全部
这个与数据有关,单看现在这几条记录,c1有重复,c2、c3都没复复,那么要取c3可以把c3放到分组里,select Column1, MAX(Column2),column3 FROM [表]
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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式