PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana Melakukan Persen/Total dalam SQL?

MySQL:

SELECT ROUND(
  100.0 * (
      SUM(IF(cust_id = 541, 1, 0)) / COUNT(order_id)
  ), 1) AS percent_total
FROM orders;

Sunting

Saya kira akan membantu jika saya memperhatikan postgres menandai. Saya pikir itu adalah pertanyaan 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 saya berkarat, jadi jika kueri MySQL berfungsi di PostgreSQL, saya ingin tahu :)

Edit 2

Saya tidak bisa cukup menekankan untuk mewaspadai saran hitungan (*) di bawah ini. Anda biasanya ingin menghindari ini dengan 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. cara membuka koneksi PostgreSQL dari IBM WSJdbc41Connection

  2. Array PHP ke array postgres

  3. Ekspor skrip CREATE untuk database

  4. Cara membuat SUM tanpa grup by

  5. jendela geser sql - menemukan nilai maksimal selama interval