sql >> Databáze >  >> RDS >> Mysql

Vícenásobné počty a skupina podle

SELECT ID, Name,
        SUM(CASE WHEN `Page Visited` = 'Page A' THEN 1 ELSE 0 END) `Page A Visit`,
        SUM(CASE WHEN `Page Visited` = 'Page B' THEN 1 ELSE 0 END) `Page B Visit`,
        SUM(CASE WHEN `Page Visited` = 'Page C' THEN 1 ELSE 0 END) `Page C Visit`
FROM tableName
GROUP BY ID, Name

pokud máte neznámé číslo page , můžete také PreparedStatement

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'SUM(CASE WHEN `Page Visited` =''',
      `Page Visited`,
      ''' then 1 ELSE 0 end) AS ',
      CONCAT('`',`Page Visited`, ' Visits`')
    )
  ) INTO @sql
FROM TableName;

SET @sql = CONCAT('SELECT ID, Name, ', @sql, ' 
                   FROM tableName
                   GROUP BY ID, Name');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;



  1. Jaký je nejjednodušší způsob, jak extrahovat data začátku a konce sprintu z JIRA db?

  2. Rozdíl mezi =a :=v MySQL

  3. Jak vynutit pascal case s podporou Oracle Entity Framework?

  4. MySQL:UPDATE tabulka s COUNT z jiné tabulky?