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

SQLステートメントでパーセンテージを計算する方法

    1. 最も効率的(over()を使用)。

      select Grade, count(*) * 100.0 / sum(count(*)) over()
      from MyTable
      group by Grade
      
    2. ユニバーサル(任意のSQLバージョン)。

      select Grade, count(*) * 100.0 / (select count(*) from MyTable)
      from MyTable
      group by Grade;
      
    3. CTEを使用すると、効率が最も低くなります。

      with t(Grade, GradeCount) 
      as 
      ( 
          select Grade, count(*) 
          from MyTable
          group by Grade
      )
      select Grade, GradeCount * 100.0/(select sum(GradeCount) from t)
      from t;
      


    1. Oracleに対するJavaのPreparedStatementの質問

    2. Microsoft OLE DB非推奨!ロングライブADO!

    3. mysqlでのGROUPBY名の前の日付と時刻の順序付け

    4. SQL Server、データを失うことなくテーブルを作成した後に自動インクリメントを設定するにはどうすればよいですか?