sql >> Databasteknik >  >> RDS >> Mysql

mysql pivot/crosstab-fråga

Även om @Johns statiska svar fungerar utmärkt, om du har ett okänt antal kolumner som du vill transformera, skulle jag överväga att använda förberedda påståenden för att få resultaten:

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;

se SQL-fiol med demo

När det gäller din andra, vänligen förtydliga vad du försöker göra det är inte klart.



  1. Skillnad mellan en användare och ett schema i Oracle?

  2. heroku, postgreSQL, django, comments, tastypie:Ingen operator matchar givna namn och argumenttyp(er). Du kan behöva lägga till explicita casts

  3. Vilken är standardordningen för en lista som returneras från ett Django-filteranrop?

  4. Vad är standardbegränsning i SQL Server - SQL Server / TSQL Tutorial Del 90