sql >> Database teknologi >  >> RDS >> Mysql

SQL:Tæl antallet af forekomster, der forekommer på outputkolonnen, og beregn en procentdel baseret på forekomsterne

Jeg tror, ​​det er, hvad du har brug for:

SELECT
    a.id,
    a.resolution,
    b.*
FROM 
    Table1 a
CROSS JOIN
    (
        SELECT
            CONCAT(SUM(aa.resolution = 'pass'), '/', COUNT(*)) AS attempts,
            CONCAT((SUM(aa.resolution = 'pass') / COUNT(*)) * 100, '%') AS percent_attempts,
            CONCAT(SUM(bb.mindate IS NOT NULL AND resolution = 'pass'), '/', SUM(resolution = 'pass')) AS first_attempt 
        FROM
            Table1 aa
        LEFT JOIN 
            (
                SELECT 
                    MIN(`date`) AS mindate 
                FROM 
                    Table1
            ) bb ON aa.`date` = bb.mindate
    ) b

SQLFiddle Link




  1. Sådan aktiverer du alle kontrolbegrænsninger i SQL Server-databasen - SQL Server / TSQL vejledning del 88

  2. mysql count gruppe efter ordre efter optimering

  3. Sådan ændres baggrundsfarven for en formular i Access 2016

  4. Sådan fungerer APPROX_COUNT_DISTINCT() i SQL Server