sql >> Databáze >  >> RDS >> Sqlserver

Jak transponovat sadu výsledků z SQL

Pokud používáte PIVOT, je nutné použít agregační funkci . Nicméně, protože vaše (RespondentId, QuestionId) kombinace je jedinečná, vaše "skupiny" budou mít pouze jeden řádek, takže můžete použít MIN() jako agregační funkce:

SELECT RespondentId, CanBathe, TimesADay, SoapPrice
FROM (SELECT RespondentId, ColumnName, AnswerValue FROM MyTable) AS src
PIVOT (MIN(AnswerValue) FOR ColumnName IN(CanBathe, TimesADay, SoapPrice)) AS pvt

Pokud skupina obsahuje pouze jeden řádek, pak MIN(value) = value , nebo jinými slovy:agregační funkce se stává funkcí identity.



  1. varchar problém s porovnáním data a času

  2. MySQL vícenásobné počty v jediném dotazu

  3. problém se spuštěním liquibase s maven a postgres-db

  4. Načítání pole pl/sql (jako out parametr)