2011-09-13 3 views
3

자주 사용하는 커뮤니티 웹 사이트 소프트웨어의 파일 다운로드를 기록하는 테이블을 쿼리하고 있습니다. 아래의 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"는 두 번 나타나므로 두 번 계산됩니다.

답변

5

당신은해야 할 것 같은 뭔가 :

SELECT file_name, COUNT(*) FROM downloads_downloads GROUP BY file_name; 
관련 문제