MySQL:
SELECT ROUND(
100.0 * (
SUM(IF(cust_id = 541, 1, 0)) / COUNT(order_id)
), 1) AS percent_total
FROM orders;
編集
postgresに気づいたら助かると思います 鬼ごっこ。 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;
追伸私のPostgreSQLは錆びているので、MySQLクエリがPostgreSQLで機能する場合は、知りたいです:)
編集2
以下のcount(*)の提案に注意するほど強調することはできません。通常、PostgreSQLではこれを避けたいと考えています。