Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql zapytanie przestawne/przestawne

Chociaż statyczna odpowiedź @Johna działa świetnie, jeśli masz nieznaną liczbę kolumn, które chcesz przekształcić, rozważę użycie przygotowanych instrukcji, aby uzyskać wyniki:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'GROUP_CONCAT((CASE node_id when ',
      node_id,
      ' then entered_value else NULL END)) AS user_input',
      node_id
    )
  ) INTO @sql
FROM trn_user_log;


SET @sql = CONCAT('SELECT app_id, transaction_id, mobile_no, ', @sql, ' 
                  FROM trn_user_log 
                  GROUP BY app_id, transaction_id, mobile_no');

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

zobacz SQL Fiddle z wersją demonstracyjną

Jeśli chodzi o drugi, proszę wyjaśnić, co próbujesz zrobić, nie jest jasne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lokalizacja pliku my.cnf w systemie macOS

  2. Zarządzaj MySQL za pomocą phpMyAdmin na Ubuntu 9.10 (Karmic)

  3. Przewodnik po projektowaniu bazy danych dla RBAC w MySQL

  4. Używanie JDeveloper z bazą danych MySQL i bazą danych Oracle na AWS RDS, część 3

  5. Jak zadeklarować zmienną w MySQL?