-1
我有兩個生成不同輸出的代碼片段。請任何人都可以提出我犯的錯誤?生成不同輸出的T-SQL查詢
第一代碼片段:
select
a.contest_id,
B.hacker_id,
B.name,
SUM(e.total_submissions)total_submissions,
SUM(e.total_accepted_submission) total_accepted_submission,
SUM(total_view)total_view,
SUM(total_unique_views) total_unique_views
from
Contests b
inner join
Colleges a on A.contest_id = B.contest_id
left join
Challenges c on a.college_id = c.college_id
left join
(select
challenge_id,
SUM(total_views) total_view,
sum(total_unique_views) total_unique_views
from
View_Stats
group by challenge_id) d on c.challenge_id = d.challenge_id
left join
(select
challenge_id,
SUM(total_submissions) total_submissions,
SUM(total_accepted_submission) total_accepted_submission
from
Submission_Stats
group by
challenge_id) e on e.challenge_id = d.challenge_id
group by
a.contest_id, b.hacker_id, B.name
having
(sum(total_submissions) +
sum(total_accepted_submission) +
sum(total_view) + sum(total_unique_views)) <> 0
order by
a.contest_ID
第二代碼片段:
;WITH SUM_View_Stats AS
(
SELECT
challenge_id,
total_views = SUM(total_views),
total_unique_views = SUM(total_unique_views)
FROM
View_Stats
GROUP BY
challenge_id
)
, SUM_Submission_Stats AS
(
SELECT
challenge_id,
total_submissions = SUM(total_submissions),
total_accepted_submissions = SUM(total_accepted_submission)
FROM
Submission_Stats
GROUP BY
challenge_id
)
SELECT
con.contest_id, con.hacker_id, con.name,
SUM(total_submissions),
SUM(total_accepted_submissions),
SUM(total_views),
SUM(total_unique_views)
FROM
Contests con
INNER JOIN
Colleges col ON con.contest_id = col.contest_id
INNER JOIN
Challenges cha ON cha.college_id = col.college_id
LEFT JOIN
SUM_View_Stats vs ON vs.challenge_id = cha.challenge_id
LEFT JOIN
SUM_Submission_Stats ss ON ss.challenge_id = cha.challenge_id
GROUP BY
con.contest_id, con.hacker_id, con.name
HAVING
(SUM(total_submissions) +
SUM(total_accepted_submissions) +
SUM(total_views) +
SUM(total_unique_views)) <> 0
ORDER BY
con.contest_ID
的問題是總提交的價值和total_accepted_submission
你能分享一下什麼樣的區別? –
1.您可以幫助我們並提供一些示例數據腳本。 2.你有什麼問題,不同的結果,錯誤異常,性能問題? – Fabio