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