2011-09-13 11 views
3

一般的なコミュニティWebサイトソフトウェアのファイルダウンロードを記録するテーブルにクエリを実行しています。下のSQLは、各ユーザーがダウンロードした最初のファイルを示しています。SQL - クエリから生成された列の一意の値をカウントします。

dfid dtime  file_name MIN(dmid) 
3  1308147507 abc    108 
455  1308149115 def    109 
788  1308156732 ghi    113 
7  1308156830 xyz    112 
455  1308158073 def    114 

私はそれぞれのfile_name値が表示された回数を示すために、file_nameにそれぞれ固有のインスタンスをカウントすることができます:

SELECT 
    dfid, dtime, file_name, MIN(dmid) 
FROM 
    downloads_downloads 
JOIN downloads_files 
ON downloads_downloads.dfid = downloads_files.file_id 
GROUP BY 
    dmid 
ORDER BY 
dtime,dfid 

このクエリからのデータは以下のように数千行が持っていますか?正確なレイアウトについては関係ありません。可能であれば、テーブルを作成せずにデータを挿入することなく、これを実行したいと思います。たとえば、上記のデータでは、file_nameの "def"が2回表示されるため、2回カウントされます。

答えて

5

あなただけのような何かする必要があると思います:

SELECT file_name, COUNT(*) FROM downloads_downloads GROUP BY file_name; 
関連する問題