【发布时间】:2009-09-10 19:50:49
【问题描述】:
感谢您的帮助!
我想将在其任何 serverFiles 中上传的所有 companyName 条目输出为:
companies.companyName - count(files.fileID) - sum(serverFiles.uniqueUploads)
Initech Ltd. - 11 - 24931
Epiphyte Inc. - 23 - 938821
以下是我的表结构的相关部分:
表格:公司
companyID (INT) - companyName (TEXT)
表格:广告系列
campaignID(INT) - companyID (INT)
表格:文件
fileID (INT) - campaignID (INT)
表:服务器文件 serverFileID (INT) - fileID (INT) - uniqueUploads(INT)
每家公司可以有多个广告系列。
每个广告系列可以有多个文件。
每个文件可以有多个 serverFiles
我尝试使用的查询如下:
SELECT companies.companyName, sum(serverFiles.uniqueUploads), count(files.fileID)
FROM companies
INNER JOIN campaigns on companies.companyID = campaigns.companyID
INNER JOIN files on files.campaign = campaigns.campaignID
LEFT OUTER JOIN serverFiles on serverfiles.fileID = files.fileID
GROUP BY serverFiles.uniqueUploads, files.fileID
ORDER BY sum(serverFiles.uniqueUploads) DESC;
但是,这会为每个公司返回多个条目(因为它为每个公司创建多个输出 - 为公司下的每个广告系列创建一个)。
例如:
companies.companyName - count(files.fileID) - sum(serverFiles.uniqueUploads)
Initech Ltd. - 2 - 234234 (for initech campaign1)
Initech Ltd. - 4 - 223323 (for initech campaign2)
Epiphyte Inc. - 13 - 6434 (for epiphyte campaign1)
Initech Ltd. - 1 - 554 (for initech campaign3)
Epiphyte Inc. - 13 - 7544 (for epiphyte campaign2)
Epiphyte Inc. - 11 - 74545 (for epiphyte campaign3)
Epiphyte Inc. - 23 - 456544 (for epiphyte campaign4)
如何将查询更改为仅针对每家公司给我一个回复,总结该公司下的所有广告系列。
非常感谢您的帮助。
【问题讨论】:
-
+1 用于使用 initech,但这看起来像一个简单的按解决方案分组