2

13 columns1つはタイプvarchar(25)で、残りはタイプ`int(年の各月の値を保持) のテーブルがあります。

top 6 int行ごとに、から値を選択し12 columns、それらの値の平均を計算し たいと思います。

特定の列から上位 n を選択する方法は知っていますが、複数の列にわたってそれを行うにはどうすればよいですか?

4

3 に答える 3

0

まず、集計と組み合わせて 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
于 2013-08-19T18:43:10.703 に答える