Tôi có một bảng mà trông giống như sau:MySQL - Làm thế nào để CHỌN dựa trên giá trị của người khác CHỌN
Name Year Value
A 2000 5
A 2001 3
A 2002 7
A 2003 1
B 2000 6
B 2001 1
B 2002 8
B 2003 2
Người dùng có thể truy vấn dựa trên một loạt các năm, và nó sẽ trở lại với tổng giá trị gia tăng nhóm lại theo tên, như vậy (giả định năm truy vấn là 2000-2001):
Name SUM(Value)
A 8
B 7
Bây giờ, tôi muốn chèn một lĩnh vực tính toán rằng kết quả đầu ra tỷ số giữa tổng của các giá trị của mỗi tên cho TẤT CẢ các năm tới tổng của tất cả các giá trị. Về cơ bản tỷ lệ phần trăm của tất cả các giá trị gán cho A và B, tương ứng, như:
Name SUM(Value) % Of Total
A 8 0.484 (16/33)
B 7 0.516 (17/33)
Lưu ý rằng ngay cả khi người dùng truy vấn chỉ 2000-2001, tôi muốn tính toán để sử dụng số tiền trên tất cả các năm. Tôi đã tìm kiếm và thử nghiệm hàng giờ và tôi không thể tìm ra cách. Tôi chỉ biết cách tính tổng số các năm được truy vấn như sau:
SELECT `Name`, SUM(`Value`)/(SELECT SUM(`Value`) FROM `table1`) AS "% of Total"
FROM `table1`
WHERE `Year` BETWEEN 2000 AND 2001
GROUP BY `Name`;
Xin vui lòng trợ giúp! Tôi rất nhiều người mới, và không hiểu SQL nhiều, vì vậy hãy làm rõ bất kỳ mã nâng cao nào. Cảm ơn vì lòng tốt của bạn.
Dễ hiểu nhất và làm việc như một sự quyến rũ. Cảm ơn bạn rất nhiều! – John