繁体   English   中英

在SQL中旋转两列

[英]Pivoting two columns in SQL

我在创建数据透视表时遇到问题,但首先这是我所有带有集合的数据结构: https : //pastebin.com/LiLHAMqs

而且我必须创建sql才能以这种格式获取数据。

我必须使用数据透视。

我很难计算每组中有多少只性别相同的猫。

这是我的SQL查询

SELECT  "Banda","Plec", NVL(SZEFUNIO,0) as SZEFUNIO, NVL(BANDZIOR,0) AS BANDZIOR, NVL(LOWCZY,0) AS LOWCZY, NVL(LAPACZ,0) AS LAPACZ, NVL(KOT,0) AS KOT, NVL(MILUSIA,0) AS MILUSIA, NVL(DZIELCZY,0) AS DZIELCZY,
(NVL(SZEFUNIO,0) + NVL(BANDZIOR,0) + NVL(LOWCZY,0) + NVL(LAPACZ,0) + NVL(KOT,0) + NVL(MILUSIA,0) + NVL(DZIELCZY,0)) as Suma
FROM   (SELECT b.nazwa "Banda", funkcja "Funkcja", plec "Plec", przydzial_myszy "przydzial", NVL(myszy_extra,0) "myszy_extra"  FROM Kocury k 
join Bandy b on b.numer_bandy = k.nr_bandy
)
PIVOT
   (  sum("przydzial" + NVL("myszy_extra",0))
     for "Funkcja"
     in ('SZEFUNIO' as SZEFUNIO, 'BANDZIOR' AS BANDZIOR, 'LOWCZY' AS LOWCZY, 'LAPACZ' AS LAPACZ, 'KOT' AS KOT, 'MILUSIA' AS MILUSIA, 'DZIELCZY' AS DZIELCZY ))
     order by "Banda";

您可以使用count over partition并指出名称( nazwa )和体裁( plec ),如下所示:

SELECT "Banda",
       "Plec",
       "Ile",
       NVL(SZEFUNIO, 0) as SZEFUNIO,
       NVL(BANDZIOR, 0) AS BANDZIOR,
       NVL(LOWCZY, 0) AS LOWCZY,
       NVL(LAPACZ, 0) AS LAPACZ,
       NVL(KOT, 0) AS KOT,
       NVL(MILUSIA, 0) AS MILUSIA,
       NVL(DZIELCZY, 0) AS DZIELCZY,
       (NVL(SZEFUNIO, 0) + NVL(BANDZIOR, 0) + NVL(LOWCZY, 0) +
       NVL(LAPACZ, 0) + NVL(KOT, 0) + NVL(MILUSIA, 0) + NVL(DZIELCZY, 0)) as Suma
  FROM (SELECT b.nazwa "Banda",
               count(*) over (partition by b.nazwa, k.plec) as "Ile",
               funkcja "Funkcja",
               plec "Plec",
               przydzial_myszy "przydzial",
               NVL(myszy_extra, 0) "myszy_extra"
          FROM Kocury k
          join Bandy b
            on b.numer_bandy = k.nr_bandy)
PIVOT(sum("przydzial" + NVL("myszy_extra", 0))
   for "Funkcja" in('SZEFUNIO' as SZEFUNIO,
                    'BANDZIOR' AS BANDZIOR,
                    'LOWCZY' AS LOWCZY,
                    'LAPACZ' AS LAPACZ,
                    'KOT' AS KOT,
                    'MILUSIA' AS MILUSIA,
                    'DZIELCZY' AS DZIELCZY))
 order by "Banda", "Ile";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM