Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhiều số lượng và một nhóm theo

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

nếu bạn có số page không xác định , bạn cũng có thể 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để lưu trữ nhiều mục trong một cột cơ sở dữ liệu?

  2. Chuyển đổi phân trang mysqli thành phân trang câu lệnh chuẩn bị

  3. Khi nào thì lưu trữ hình ảnh trong cơ sở dữ liệu (mySQL) và khi nào thì không? (Liên kết hình ảnh với mục trong cơ sở dữ liệu)

  4. Nhóm các hàng theo khoảng cách 7 ngày bắt đầu từ một ngày nhất định

  5. Sử dụng Pentaho Kettle, làm cách nào để tải nhiều bảng từ một bảng trong khi vẫn giữ được tính toàn vẹn của tham chiếu?