sql >> Databasteknik >  >> RDS >> Mysql

Procentandelar i MySQL

Använd:

SELECT x.company,
       x.year,
       x.annual_total
       x.annual_total / y.total AS percentage
  FROM (SELECT t.company, 
               YEAR(t.date) as year, 
               COUNT( * ) as annual_total
          FROM TABLE t
         WHERE t.company IN ('Medtronic', 'Private')
      GROUP BY YEAR( t.date ) ) x
  JOIN (SELECT t.company,
               COUNT(*) 'total'
          FROM TABLE t
         WHERE t.company IN ('Medtronic', 'Private')
      GROUP BY t.company) y ON y.company = x.company

Om du vill ha procentsatsen med särskilda decimaler, använd:

CAST(x.annual_total / y.total AS DECIMAL(2,2)) AS percentage

Kontrollera att detta ger antalet per företag du förväntar dig:

  SELECT t.company,
         COUNT(*) 'total'
    FROM TABLE t
   WHERE t.company IN ('Medtronic', 'Private')
GROUP BY t.company


  1. Vad är skillnaden mellan backtick och hakparentes i SQL-satser?

  2. CodeIgniter-fel - det går inte att ansluta till databasen med de angivna inställningarna

  3. MariaDB LENGTH() vs LENGTHB():Vad är skillnaden?

  4. Skicka e-postmeddelanden med bilagor i SQL Server (T-SQL)