[英]SQL How to select columns multiple times on one row based on value in other column
[英]SQL: Select an item in one column based on the other column's value
我有一个看起来像这样的表:
+-----+----+
|A |B |
+-----+----+
| 1| 0|
| 2| 1|
| 2| 1|
| 2| 1|
| 2| 2|
| 3| 1|
| 4| 1|
| 5| 1|
| 5| 2|
| 6| 2|
| 7| 2|
| 8| 2|
+-----+----+
我想选择A的值,其中B的值是最低的。 但要保留重复次数。 说我有3对,使得(4,5),(4,5),(4,6),我希望结果是(4,5),(4,5)。
对于上表,我希望输出为
+-----+----+
|A |B |
+-----+----+
| 1| 0|
| 2| 1|
| 2| 1|
| 2| 1|
| 3| 1|
| 4| 1|
| 5| 1|
| 6| 2|
| 7| 2|
| 8| 2|
+-----+----+
我试图做这样的事情,但我迷路了!
SELECT t1.A, t1.B from table t1 JOIN table t2
WHERE t1.B >= t2.B
ORDER BY B DESC
任何线索表示赞赏!
这应该工作:
select t1.* from mytable t1
join
(select A, min(B) as B from mytable group by A) t2
on t1.A = t2.A and t1.B = t2.B
SELECT
a.A, a.B
FROM table1 a WHERE B=(select MIN(b) FROM table1)
ORDER BY B DESC
您可以使用子查询。 首先确定所有满足条件的列。 然后使用where过滤掉记录。
select A,B from(
select A,B, case when B<A then 'Y' else 'N' end as C from table)
where C = 'Y'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.