13 columns
1つはタイプvarchar(25)
で、残りはタイプ`int(年の各月の値を保持) のテーブルがあります。
top 6 int
行ごとに、から値を選択し12 columns
、それらの値の平均を計算し たいと思います。
特定の列から上位 n を選択する方法は知っていますが、複数の列にわたってそれを行うにはどうすればよいですか?
13 columns
1つはタイプvarchar(25)
で、残りはタイプ`int(年の各月の値を保持) のテーブルがあります。
top 6 int
行ごとに、から値を選択し12 columns
、それらの値の平均を計算し たいと思います。
特定の列から上位 n を選択する方法は知っていますが、複数の列にわたってそれを行うにはどうすればよいですか?
まず、集計と組み合わせて TOP を使用すると、集計が制限されるのではなく、結果セットが制限されることを理解することが重要です。この例を見てください:
SELECT TOP 2 SUM(col) FROM
(SELECT 1 AS col
UNION
SELECT 2
UNION
SELECT 3)sq
結果はやはり「6」。
第 2 に、集計は列全体では機能せず、行のみで機能します。それらを手動で評価する必要があります。おそらく最も効率的な方法は、次のように行からテーブルを作成することです。
SELECT
(SELECT MAX(myval) FROM (values (col1), (col2), (col3), (col4)) as all_values(myval))
FROM (SELECT 1 as col1, 2 as col2, 3 as col3, 4 as col4)sq