sql >> データベース >  >> RDS >> Mysql

クエリにGROUPBYがある場合、合計のパーセンテージを取得するにはどうすればよいですか?

    大規模なセットの場合、JOINはサブクエリよりもパフォーマンスが向上する可能性があります。

    SELECT ma.actor
         , COUNT(1) AS total
         , COUNT(1) / t.cnt * 100 AS `percentage`
      FROM movies_actors ma
     CROSS
      JOIN (SELECT COUNT(1) AS cnt FROM movies_actors) t
     GROUP
        BY ma.actor
         , t.cnt  
    

    大きなセットの場合、および行の大部分が返される場合、通常、JOIN操作はサブクエリよりもパフォーマンスが優れている可能性があります。あなたの場合、それは相関サブクエリではないので、MySQLはそれを複数回実行する必要がないので、違いがない可能性があります。

    COUNT(1)のファン以外の方への注意 ... COUNT(1)のすべてのオカレンスを置き換えることができます COUNT(*)を使用 またはIFNULL(SUM(1),0) 同等の結果を達成するため。



    1. 数字を単語に変換する方法-ORACLE

    2. sql.gzファイルをパテでデータベースにインポートして挿入します

    3. PostgreSQLリバースLIKE

    4. SalesforceおよびActiveDirectoryフェデレーションサービス(ADFS)シングルサインオン(SSO)でのODBCの使用