我试图用动态列创建一个表。
我有这张桌子。这只是简化,在其他情况下,这些可能有更多的值而不是3。
name ---------------------- Fall Medication Wander (3 rows)
我想要得到这个结果。我需要将值分成列。
Fall | Medication | Wander --------+------------+-------- (0 rows)
答案 0 :(得分:0)
你需要PIVOT表。不幸的是,MySQL(不像Oracle http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html)没有PIVOT运算符,但似乎有一些变通方法。 MySQL pivot table
答案 1 :(得分:0)
您可以在较新的PostgreSQL中尝试使用其中一个crosstab()函数。见https://www.postgresql.org/docs/current/static/tablefunc.html(F.35.1.2和F.35.1.4)。它允许您指定具有行名(创建行),类别(创建列)和值(填充表的内部部分)的查询。
具有2个查询的变体可能特别有用,因为它允许您指定要与单独查询一起使用的列。