MySQL:
SELECT ROUND(
100.0 * (
SUM(IF(cust_id = 541, 1, 0)) / COUNT(order_id)
), 1) AS percent_total
FROM orders;
Chỉnh sửa
Tôi đoán sẽ hữu ích nếu tôi nhận thấy postgres nhãn. Tôi nghĩ đó là một câu hỏi MySQL.
PostgreSQL:
SELECT ROUND(
100.0 * (
SUM(CASE WHEN cust_id = 541 THEN 1 ELSE 0 END)::numeric / COUNT(order_id)
), 1) AS percent_total
FROM orders;
P.S. PostgreSQL của tôi bị gỉ, vì vậy nếu truy vấn MySQL hoạt động trên PostgreSQL thì tôi muốn biết :)
Chỉnh sửa 2
Tôi không thể đủ căng thẳng để cảnh giác với đề xuất đếm (*) bên dưới. Bạn thường muốn tránh điều này với PostgreSQL.