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;
    

    追伸私のPostgreSQLは錆びているので、MySQLクエリがPostgreSQLで機能する場合は、知りたいです:)

    編集2

    以下のcount(*)の提案に注意するほど強調することはできません。通常、PostgreSQLではこれを避けたいと考えています。



    1. onClickjavascript関数を介してPHPを使用してMySqlデータベースを更新する

    2. mysqlで無制限に3番目に高い給与を見つける

    3. ケーススタディ:ARKWARE MS ACCESS CRM

    4. phpとmysqlデータベースを使用するときに効果的な検索アルゴリズムを実装する方法は?