サブクエリを使用してデータをサブセット化するクエリがあり、サブクエリから特定のデータを選択しようとしています。サブクエリは次のとおりです。
select top 10 Build_ID, Appscan_Definitive_High,
rank() over (order by Appscan_Definitive_High desc) as rankpct
from
(
select build_id, convert(int,appscan_definitive_high) as
appscan_definitive_high
from dbo.SDFBuildMetrics
where coalesce(appscan_definitive_high,0)>0
) a
そしてこれからの結果は次のとおりです。
Build_ID Appscan_Definitive_High rankpct
31966 51 1
32627 51 1
44293 51 1
47011 51 1
47968 51 1
48554 51 1
25586 49 7
27370 49 7
40357 48 9
23867 44 10
しかし、サブクエリに対してクエリを実行すると、次のようになります。
select Appscan_Definitive_High
from
(
select top 10 Build_ID, Appscan_Definitive_High,
rank() over (order by Appscan_Definitive_High desc) as rankpct
from
(
select build_id, convert(int,appscan_definitive_high) as
appscan_definitive_high
from dbo.SDFBuildMetrics
where coalesce(appscan_definitive_high,0)>0
) a
) aa
私は得る:
Appscan_Definitive_High
1
44
21
44
2
44
2
6
7
7
完全なクエリの最終的な目的はmin(AppScan_Definitive_High)を取得することですが、返される値のセットがサブクエリから返される値のセットと一致しないため、min関数は必要なものを提供しません。サブクエリは、外部クエリが操作するデータのセットを返すと想定していますが、上記の例ではそうではないようです。
これについて何か助けはありますか?
orderbyなしでselecttop10を実行しています。あなたが望む結果を得るには、そこまでに注文する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加