2016-04-13 15 views
0

3時間後、グループ化せずに異なる列を数えようとしています。 私はjoinまたはsub-selectクエリでそれを試しましたが、私がSQLで新しくなったので、私はそれを行う方法を解決しませんでした。だからここSQL - グループ化なしのカウント

は私のSQLクエリです:

SELECT [Destination ID], 
     [ProjectID], 
     [Campaign ProjectId] 
FROM Raw_Data; 

どのように私は1つのSQLクエリ内のプロジェクトIDとキャンペーンプロジェクトID、送信先IDをカウントしても、表内のすべてのIDを表示することができます。私はMS Accessを使用しています

Screenshot

ここでは一例として、どのように出力は次のようになります。

私が助けることができれば素晴らしいことでしょう。

ありがとうございます!

+5

あなたの質問は非常に理解しにくいです。たぶん、あなたが後になっている結果を私たちに示すのではなく、あなたが技術(「グループ化しないでカウント」)について話しているからかもしれません。いくつかのサンプルレコードと期待される結果を示してください。私たちは喜んで助けてくれるでしょう。 –

+0

「すべてのID」?目的地ID、プロジェクトID、キャンペーンプロジェクトIDの両方サンプルテーブルのデータと期待される結果を見せてください! – jarlh

+0

質問を理解してから、「SELECT count(*)FRU Raw_Data;」を使用してカウントしたいのであれば、 –

答えて

1

私はあなたが右の理解場合は、これを試みることができる:あなたが試みることができる、新しいAccessのバージョンでは

SELECT 
    [Destination ID], 
    (SELECT COUNT([Destination ID]) 
     FROM Raw_Data AS T2 
     WHERE T2.[Destination ID] = T1.[Destination ID]) AS DestCount, 
    [ProjectID], 
    (SELECT COUNT([ProjectID]) 
     FROM Raw_Data AS T3 
     WHERE T3.[ProjectID] = T1.[ProjectID]) AS ProjectCount, 
    [Campaign ProjectId], 
    (SELECT COUNT([Campaign ProjectId]) 
     FROM Raw_Data AS T4 
     WHERE T4.[Campaign ProjectId] = T1.[Campaign ProjectId]) AS CampaignCount 
FROM Raw_Data AS T1; 

EDIT

SELECT 
    T1.[Destination ID], 
    T2.[DestCount], 
    T1.[ProjectID], 
    T3.[ProjectCount], 
    T1.[Campaign ProjectId], 
    T4.[CampaignCount] 
FROM (((Raw_Data AS T1 
     INNER JOIN 
     (
     SELECT [Destination ID], COUNT([Destination ID]) AS DestCount 
     FROM Raw_Data 
     GROUP BY [Destination ID] 
     ) 
     AS T2 ON 
     T1.[Destination ID] = T2.[Destination ID]) 
     INNER JOIN 
     (
     SELECT [ProjectID], COUNT([ProjectID]) AS ProjectCount 
     FROM Raw_Data 
     GROUP BY [ProjectID] 
     ) 
     AS T3 
     ON T1.[ProjectID] = T3.[ProjectID]) 
     INNER JOIN 
     (
     SELECT [Campaign ProjectID], COUNT([Campaign ProjectID]) AS CampaignCount 
     FROM Raw_Data 
     GROUP BY [Campaign ProjectID] 
     ) 
     AS T4 
     ON T1.[Campaign ProjectID] = T4.[Campaign ProjectID]) 

を私はこれをテストすることはできませんより新しいAccessバージョンでは、これがうまくいくことを読んでください。

+0

ありがとうNik Bo。これは私が必要とするものです。しかし、私のテーブルは非常に大きく、クエリには年月がかかりました。他にも解決策がありますか?おそらくもっとリソースを節約するクエリでしょう。 – Peter

+0

どのMS Accessバージョンを使用していますか? –

+0

アクセス2007-2013 – Peter