0

次のようなクエリがあります。

SELECT col1, col2, col3, col4, COUNT(*) OVER(PARTITION BY PAT07, PAT08, PAT18) AS TotalPerPerson
FROM Table1
GROUP BY col1, col2, col3, col4

次のようなテーブルが返されます。

col1   col2   col3   col4   TotalPerPerson
data1  data2  data3  data4  2
data1  data2  data3  data5  2
data10 data11 data12 data13 3
data10 data11 data12 data14 3
data10 data11 data12 data15 3

問題は、このクエリが with 句にあることです。これをプライマリ クエリに結合する方法がありません。内部結合で使用できるように、このクエリで「id」列を選択する必要があります。グループにIDを追加せずにどうすればそれを行うことができますか?

4

1 に答える 1

1

group by または集計に追加する必要があります。min() または max() を試すか、サブクエリを使用して上位 1 を選択できます。主キーがこのデータにどのように関連しているかを知らなければ、最良の答えを提案することは困難です。

サブクエリについては、次のようなものを試してください。

 SELECT 
 col1
,col2
,col3
,col4
,COUNT(*) OVER(PARTITION BY PAT07, PAT08, PAT18) AS TotalPerPerson
,(select top 1 id from Table1 where {criteria relating data to id}) as id 
FROM Table1 
GROUP BY 
 col1
,col2
,col3
,col4 

これが質問で提供したデータとどのように関係するのかがわからないため、where句を提案するのは難しい

于 2013-06-05T15:52:06.153 に答える