Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapytanie Oracle Pivot daje kolumny z cudzysłowami wokół nazw kolumn. Co?

możesz podać aliasy do nowych kolumn w pivot IN wyciągu klauzula. (Uwaga:różni się to od standardu, w którym klauzula IN() który nie zezwala na aliasy.)

with testdata as
(
    select 'Fred' First_Name, 10 Items from dual
    union
    select 'John' First_Name, 5  Items from dual
    union 
    select 'Jane' First_Name, 12 Items from dual
    union
    select 'Fred' First_Name, 15 Items from dual
)
select * from testdata
pivot (
      sum(Items) 
      for First_Name
      in ('Fred' as fred,'John' as john,'Jane' as jane)
      )

a także dla klauzuli zbiorczej, która jest konieczna, jeśli masz wiele klauzul.

with testdata as
(
    select 'Fred' First_Name, 10 Items from dual
    union
    select 'John' First_Name, 5  Items from dual
    union 
    select 'Jane' First_Name, 12 Items from dual
    union
    select 'Fred' First_Name, 15 Items from dual
)
select * from testdata
pivot (
    sum(Items) itmsum,
    count(Items) itmcnt
    for First_Name
    in ('Fred' as fred,'John' as john,'Jane' as jane)
   )

powraca

FRED_ITMSUM FRED_ITMCNT JOHN_ITMSUM JOHN_ITMCNT JANE_ITMSUM JANE_ITMCNT
----------- ----------- ----------- ----------- ----------- -----------
         25           2           5           1          12           1

Oczywiście możesz wtedy zatoczyć pełne koło i użyć standardowego aliasowania wyroczni i zmienić ich nazwy na dowolne, w tym ponownie wstawić cytaty.

with testdata as
(
    select 'Fred' First_Name, 10 Items from dual
    union
    select 'John' First_Name, 5  Items from dual
    union 
    select 'Jane' First_Name, 12 Items from dual
    union
    select 'Fred' First_Name, 15 Items from dual
)
select FRED_ITMSUM "Fred's Sum", FRED_ITMCNT "Fred's Count"
     , JOHN_ITMSUM "John's Sum", JOHN_ITMCNT "John's Count"
     , JANE_ITMSUM "Janes's Sum", JANE_ITMCNT "Janes's Count"
from testdata
pivot (
    sum(Items) itmsum,
    count(Items) itmcnt
    for First_Name
    in ('Fred' as fred,'John' as john,'Jane' as jane)
   )

daje

Fred's Sum Fred's Count John's Sum John's Count Janes's Sum Janes's Count
---------- ------------ ---------- ------------ ----------- -------------
        25            2          5            1          12             1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kontynuacja wstawek w Oracle po zgłoszeniu wyjątku

  2. Jak uruchomić plik .sql w narzędziu deweloperskim Oracle SQL, aby zaimportować bazę danych?

  3. Indeksy Oracle i rodzaje indeksów w Oracle z przykładem

  4. Proces aktualizacji krok po kroku do wersji R12.2 Aktualizacja, część -3

  5. Karta sieciowa nie mogła nawiązać połączenia podczas łączenia się z bazą danych Oracle