PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да направя процент/общо в SQL?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задайте празните низове ('') на NULL в цялата база данни

  2. Показване на резултати от клиентска заявка на PSQL 8.3+

  3. Променете имената на колоните в таблицата с главни букви в postgre

  4. Postgres връзката е отказана от Openshift Tomcat 7 касета

  5. йерархична сума в PostgreSQL