MySQL:
SELECT ROUND(
100.0 * (
SUM(IF(cust_id = 541, 1, 0)) / COUNT(order_id)
), 1) AS percent_total
FROM orders;
Modifica
Immagino che possa essere d'aiuto se avessi notato i postgres etichetta. Pensavo fosse una domanda su 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;
PS Il mio PostgreSQL è arrugginito, quindi se la query MySQL funziona su PostgreSQL mi piacerebbe saperlo :)
Modifica 2
Non posso sottolineare abbastanza per diffidare del suggerimento di conteggio (*) di seguito. In genere vuoi evitarlo con PostgreSQL.