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;
P.S. Моят PostgreSQL е ръждясал, така че дали MySQL заявката работи на PostgreSQL, бих искал да знам :)
Редактиране 2
Не мога да подчертая достатъчно, за да внимавам с предложението за броене (*) по-долу. Обикновено искате да избегнете това с PostgreSQL.