Câu hỏi liên quan

0 Phiếu
3 Câu trả lời
0 Phiếu
0 Câu trả lời
0 Phiếu
0 Câu trả lời
0 Phiếu
2 Câu trả lời
0 Phiếu
3 Câu trả lời

Các tóm tắt tổng thể với nhiều GROUP BY


0 Phiếu
Đã hỏi 25/5/2016 bởi So9158 (470 điểm)
Cho phép nói rằng tôi có một table được gọi là census với các thông tin sau:
COUNTRY     PROVINCE    CITY        POPULATION
==============================================
USA         California  Sacramento  1234
USA         California  SanFran     4321
USA         Texas       Houston     1111
USA         Texas       Dallas      2222
Canada      Ontario     Ottawa      3333
Canada      Manitoba    Winnipeg    4444
tôi là xây dựng một báo cáo ở cấp độ quốc gia/tỉnh, mang lại cho tôi những điều sau đây:
SELECT country, province, SUM(population)
FROM census
GROUP BY country, province;
COUNTRY     PROVINCE    SUM(POPULATION)
=======================================
USA         California  5555
USA         Texas       3333
Canada      Ontario     3333
Canada      Manitoba    4444
tôi đang tìm để có một "tổng thể tóm tắt" hàng bao gồm các báo cáo, do đó kết quả cuối cùng trông giống như:
COUNTRY     PROVINCE    SUM(POPULATION)
=======================================
USA         California   5555
USA         Texas        3333
Canada      Ontario      3333
Canada      Manitoba     4444
TOTAL                   16665
tôi làm quen với ROLLUP s, nhưng tôi không thể dường như để tìm một sự kết hợp được cho tôi những gì tôi đang tìm kiếm. Bằng cách sử dụng GROUP BY ROLLUP(country, province) bao gồm tất cả value tôi muốn, nhưng nó cũng bao gồm một số lượng lớn các giá trị phụ mà tôi không quan tâm. Đây cũng là true với GROUP BY ROLLUP(country), province làm thế nào có thể đi về việc thực hiện ghi "tất cả"? Tôi hiện nay đang tính toán với một UNION ALL và lặp đi lặp lại 90% của query đầu tiên với một GROUP BY khác nhau, nhưng vì query đầu tiên là không tầm thường, kết quả là mã chậm chạp và xấu xí. Dưới đây là một Fiddle SQL đối với những người muốn chơi với điều này: http://sqlfiddle.com/#! 12ad9-4-5

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.


ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...