我们说我有一些下面的表模式:
year|val1|val2
我希望获得所有val1
列的val2
和year
列。我怀疑我需要在这里分组,但我无法想象如何。
我们假设我们有多年的查询时间:SELECT DISTINCT YEAR FROM table
。让我们说它返回2000,2001。因此,如果我必须将行设为2000|1|2
和2001|1|2
,则查询应返回单行1|2
答案 0 :(得分:1)
这样的事可能有效
select
value1
from
table as t1 inner join
(select distinct year from table) as t2
on t1.year=t2.year
group by
val1
having count(distinct t1.year)=(count(distinct t2.year) )
答案 1 :(得分:0)
不确定您的问题。但我认为你需要val1和val2的所有值,这些值适用于所有有效的年份值。如果是这种情况那么你必须对表进行内连接 像这样的东西
从表
中选择@yearcnt = count(不同年份)或从表中选择val1,count(distint year)作为totalyear 按val1分组 有计数(不同年份)= @yearcnt