Я пытаюсь показать средние значения на SQL-сервере, но когда я тестирую данные в Excel, результаты не совпадают, должно быть что-то очевидное, что мне не хватает.SQL Server AVG и Excel AVERAGE дают разные результаты?
Вот код и результаты от сервера SQL:
SELECT DISTINCT
d.d_reference + ' - ' + d.d_name AS Faculty,
AVG(sub.GroupSize) AS FacultyAverage
FROM
unitesnapshot.dbo.capd_register r
INNER JOIN unitesnapshot.dbo.capd_studentregister sr ON sr.sr_register = r.r_id
INNER JOIN unitesnapshot.dbo.capd_activity a ON a.a_register = r.r_id
INNER JOIN unitesnapshot.dbo.capd_moduleactivity ma ON ma.ma_activity = a.a_id
INNER JOIN unitesnapshot.dbo.capd_module m ON m.m_id = ma.ma_activitymodule
INNER JOIN unitesnapshot.dbo.capd_department d ON d.d_id = m.m_moduledept
INNER JOIN unitesnapshot.dbo.capd_section sec ON sec.s_id = m.m_modulesection
INNER JOIN (SELECT
r.r_reference,
COUNT(DISTINCT s.s_studentreference) AS GroupSize
FROM
unitesnapshot.dbo.capd_student s
INNER JOIN unitesnapshot.dbo.capd_person p ON p.p_id = s.s_id
INNER JOIN unitesnapshot.dbo.capd_studentregister sr ON sr.sr_student = p.p_id
INNER JOIN unitesnapshot.dbo.capd_register r ON r.r_id = sr.sr_register
GROUP BY
r.r_reference) sub ON sub.r_reference = r.r_reference
WHERE
SUBSTRING(r.r_reference,4,2) = '12' AND
d.d_reference = '730'
GROUP BY
d.d_reference,
d.d_name
Вот результаты в Excel:
Благодарности
Спасибо за ваш ответ Ричард, но я просто попробовал это, и он не работает, он просто производит десятичный результат 24.412407? есть идеи? – Will
Я подчеркивал тот факт, что AVERAGE Excel создает реальное число с плавающей запятой, но SQL Server будет следовать типу базового столбца. Я уже прокомментировал, что у вас есть другие проблемы. Не показывая все ваши данные, проверить невозможно. Существует так много способов сделать ошибки копирования данных из SQL Server в Excel. – RichardTheKiwi
Спасибо, данные excel создаются из небольшого варианта запроса в моем исходном вопросе, поэтому данные должны быть точными. – Will