MAccessic 2007 SQL 复杂查询
MSaccess 2007 SQL complex query
我有以下 table 列和值...
ColA, ColB, ColC
b, 90, 1
p, 95, 5
p, 100, 6
p, 99, 6
p, 98, 6
b, 94, 5
b, 93, 1
b, 92, 3
o, 89, 3
b, 88, 4
我需要以下结果集:
ColA, ColB, ColC
b, 90, 1
b, 93, 1
p, 95, 5
o, 89, 3
本质上,这是 ColA 相同时 ColC 的最低值。所以所有 b 的最小值为 1,它出现在两行中。所有 p 的最低值为 5,所有 o 的最低值为 3。ColB 是要加入另一个 table 的值。所以我确实需要一个查询,它将通过 ColB 加入另一个 table。
谢谢。
给你!
with r1 as
(select *
,rank() over (partition by ColA order by ColC) fix
from aba
)
select * from r1 where fix = 1
试试这个
select mainTable.* from abcTable as mainTable inner join
(select t.colA,min(t.colC) as minColC from abcTable as t group by t.ColA) as minimumTable
on mainTable.colA=minimumTable.ColA and mainTable.colC=minimumTable.minColC
我有以下 table 列和值...
ColA, ColB, ColC
b, 90, 1
p, 95, 5
p, 100, 6
p, 99, 6
p, 98, 6
b, 94, 5
b, 93, 1
b, 92, 3
o, 89, 3
b, 88, 4
我需要以下结果集:
ColA, ColB, ColC
b, 90, 1
b, 93, 1
p, 95, 5
o, 89, 3
本质上,这是 ColA 相同时 ColC 的最低值。所以所有 b 的最小值为 1,它出现在两行中。所有 p 的最低值为 5,所有 o 的最低值为 3。ColB 是要加入另一个 table 的值。所以我确实需要一个查询,它将通过 ColB 加入另一个 table。
谢谢。
给你!
with r1 as
(select *
,rank() over (partition by ColA order by ColC) fix
from aba
)
select * from r1 where fix = 1
试试这个
select mainTable.* from abcTable as mainTable inner join
(select t.colA,min(t.colC) as minColC from abcTable as t group by t.ColA) as minimumTable
on mainTable.colA=minimumTable.ColA and mainTable.colC=minimumTable.minColC