PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SQL:एक टेबल को उल्टा ट्रांसपोज़ करें

यह स्पष्ट नहीं है कि आप "ए", "बी", "सी" मानों को कैसे पुनर्स्थापित करते हैं, इसलिए मैं उन्हें केवल जोड़ता हूं

तैयार करें:

t=# create table s188 (scanid int,a float, b float,c float);
CREATE TABLE
t=# insert into s188 select 1,2,3,4;
INSERT 0 1
t=# insert into s188 select 2,12,13,14;
INSERT 0 1
t=# select * from s188;
 scanid | a  | b  | c
--------+----+----+----
      1 |  2 |  3 |  4
      2 | 12 | 13 | 14
(2 rows)

चुनें:

t=# with a as (
  select scanid,unnest(array[a,b,c]) from s188
)
select scanid,chr((row_number() over (partition by scanid))::int + 64),unnest
from a;
 scanid | chr | unnest
--------+-----+--------
      1 | A   |      2
      1 | B   |      3
      1 | C   |      4
      2 | A   |     12
      2 | B   |     13
      2 | C   |     14
(6 rows)

और a_horse_with_no_name

. से अधिक साफ समाधान
t=# with a as (
  select scanid, x.*
  from s188, unnest(array[a,b,c]) with ordinality as x(volume,idx)
)
select scanid,
       chr(idx::int + 64) as region,
       volume
from a;
 scanid | region | volume
--------+--------+--------
      1 | A      |      2
      1 | B      |      3
      1 | C      |      4
      2 | A      |     12
      2 | B      |     13
      2 | C      |     14
(6 rows)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में महीने के नाम को महीने की संख्या में बदलें

  2. PostgreSQL array_agg क्रम

  3. PostgreSQL 9.4 में डायनेमिक SQL के लिए कोई निष्पादन योजना कैशिंग नहीं है?

  4. ActiveRecord::StatementInvalid. पीजी त्रुटि

  5. मैपिंग फ़ाइल में 'उलटा' हाइबरनेट करें