Спасибо за вашу помощь!
Я хотел бы вывести все записи companyName, которые были загружены через любой из своих файлов server, как:
companies.companyName - количество (files.fileID) - сумма (serverFiles.uniqueUploads)
Initech Ltd. - 11 - 24931
Epiphyte Inc. - 23 - 938821
Вот соответствующие части структуры моей таблицы:
Таблица: компании
companyID (INT) - companyName (TEXT)
Таблица: кампании
campaignID(INT) - companyID (INT)
Таблица: файлы
fileID (INT) - campaignID (INT)
Таблица: serverFiles
serverFileID (INT) - fileID (INT) - uniqueUploads (INT)
Каждая компания может иметь несколько кампаний.
Каждая кампания может иметь несколько файлов.
Каждый файл может иметь несколько файлов server
Запрос, который я пытался использовать, выглядит следующим образом:
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 - количество (files.fileID) - сумма (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)
Как мне изменить запрос, чтобы дать мне только один ответ для каждой компании, суммируя все кампании в этой компании.
Большое спасибо за любую помощь.