sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man beräknar procent med en SQL-sats

  1. Den mest effektiva (med över()).

    select Grade, count(*) * 100.0 / sum(count(*)) over()
    from MyTable
    group by Grade
    
  2. Universal (valfri SQL-version).

    select Grade, count(*) * 100.0 / (select count(*) from MyTable)
    from MyTable
    group by Grade;
    
  3. Med CTE, den minst effektiva.

    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. söker programmässigt efter öppen anslutning i JDBC

  2. Hur använder man Timestamp_to_scn och Scn_to_timestamp i Oracle?

  3. få ett antal unika värden utan att separera värden som hör till samma värdeblock

  4. Hur anropar man en Oracle-funktion från Hibernate med en returparameter?