0

次のテーブル スキーマが あるとします。列のすべての値を持つすべての列と列year|val1|val2 を取得したいとします。ここでグループ化が必要だと思いますが、その方法が想像できません。query: から年のセットがあるとしましょう。2000,2001 が返されたとしましょう。したがって、次のように行を作成する必要がある場合、クエリは単一の行を返す必要がありますval1val2yearSELECT DISTINCT YEAR FROM table2000|1|22001|1|21|2

4

2 に答える 2

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) )
于 2012-07-16T09:46:08.167 に答える
0

あなたの質問についてよくわかりません。しかし、年のすべての有効な値に対して存在するval1とval2のすべての値が必要だと思います。その場合は、次のようなテーブルとの内部結合を行う必要があります。

テーブルから@yearcnt=count(distinct year)を選択します

または、count(distinct year)= @yearcntを持つval1によって、テーブルグループからtotalyearとしてval1、count(distint year)を選択します。

于 2012-07-16T09:50:01.433 に答える