Postgresql垂直到水平,一个表

Postgresql垂直到水平,一个表,postgresql,Postgresql,我正在尝试用postgresql创建一个小词汇表。 到目前为止,我有一个带有一些“垂直值”的表 但我希望它是这样的: Sing_id en_GB de_DE fr_FR ru_RU ... 1 yes ja oui 2 no nein niet ... 你想给我一个如何实现这一点的提示吗?你说的是“旋转” 见此帖: 来自post的示例: SELECT * FROM cros

我正在尝试用postgresql创建一个小词汇表。 到目前为止,我有一个带有一些“垂直值”的表

但我希望它是这样的:

Sing_id   en_GB   de_DE   fr_FR   ru_RU    ...

  1         yes      ja      oui
  2         no       nein           niet    ...

你想给我一个如何实现这一点的提示吗?

你说的是“旋转”

见此帖:

来自post的示例:

SELECT *
FROM crosstab(
  'SELECT
    a date,
    b.desc AS os,
    (random() * 10000 + 1)::int AS value
     FROM generate_series((now() - ''100 days''::interval)::date, now()::date, ''1 DAY''::interval) a,
          (SELECT unnest(ARRAY[''OSX'', ''Windows'', ''Linux'']) AS DESC) b ORDER BY 1,2
  ','SELECT unnest(ARRAY[''OSX'', ''Windows'', ''Linux''])'
) 
AS ct(date date, OSX int, Windows int, Linux int);

谢谢我将尝试交叉表功能。我还发现了这个:
SELECT *
FROM crosstab(
  'SELECT
    a date,
    b.desc AS os,
    (random() * 10000 + 1)::int AS value
     FROM generate_series((now() - ''100 days''::interval)::date, now()::date, ''1 DAY''::interval) a,
          (SELECT unnest(ARRAY[''OSX'', ''Windows'', ''Linux'']) AS DESC) b ORDER BY 1,2
  ','SELECT unnest(ARRAY[''OSX'', ''Windows'', ''Linux''])'
) 
AS ct(date date, OSX int, Windows int, Linux int);