<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic PIVOT on month and quarter in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/pivot-on-month-and-quarter/m-p/7685#M3478</link>
    <description>&lt;P&gt;I want to simplify this query:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;SELECT 
year(EntryDate) Year,
AccountNumber,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 1) AS jan_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 2) AS feb_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 3) AS mar_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 4) AS apr_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 5) AS may_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 6) AS jun_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 7) AS jul_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 8) AS aug_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 9) AS sep_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 10) AS oct_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 11) AS nov_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 12) AS dec_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 1) AS q1_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 2) AS q2_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 3) AS q3_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 4) AS q4_total
FROM prod.gold.finance_financeentry
WHERE EntryDate BETWEEN "2022-01-01" AND "2023-02-28"
GROUP BY year, AccountNumber
ORDER BY Year, AccountNumber;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Into something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;SELECT * FROM (
  SELECT  year(EntryDate) year, month(EntryDate) month, quarter(EntryDate) quarter, AccountNumber, CreditBase, DebitBase
  FROM prod.gold.finance_financeentry
  WHERE EntryDate BETWEEN DATE '2022-01-01' AND DATE '2023-02-28'
)
PIVOT (SUM(CreditBase - DebitBase) AS BalanceInBase
  FOR month
  IN (1 JAN, 2 FEB, 3 MAR, 4 APR, 5 MAY, 6 JUN,
      7 JUL, 8 AUG, 9 SEP, 10 OCT, 11 NOV, 12 DEC)
  FOR quarter
  IN (1 Q1, 2 Q2, 3 Q3, 4 Q4)
  )&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Is this possible somehow?&lt;/P&gt;</description>
    <pubDate>Wed, 15 Mar 2023 13:23:15 GMT</pubDate>
    <dc:creator>ossinova</dc:creator>
    <dc:date>2023-03-15T13:23:15Z</dc:date>
    <item>
      <title>PIVOT on month and quarter</title>
      <link>https://community.databricks.com/t5/data-engineering/pivot-on-month-and-quarter/m-p/7685#M3478</link>
      <description>&lt;P&gt;I want to simplify this query:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;SELECT 
year(EntryDate) Year,
AccountNumber,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 1) AS jan_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 2) AS feb_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 3) AS mar_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 4) AS apr_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 5) AS may_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 6) AS jun_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 7) AS jul_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 8) AS aug_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 9) AS sep_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 10) AS oct_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 11) AS nov_total,
sum(CreditBase - DebitBase) FILTER(WHERE month(EntryDate) = 12) AS dec_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 1) AS q1_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 2) AS q2_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 3) AS q3_total,
sum(CreditBase - DebitBase) FILTER(WHERE quarter(EntryDate) = 4) AS q4_total
FROM prod.gold.finance_financeentry
WHERE EntryDate BETWEEN "2022-01-01" AND "2023-02-28"
GROUP BY year, AccountNumber
ORDER BY Year, AccountNumber;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Into something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;SELECT * FROM (
  SELECT  year(EntryDate) year, month(EntryDate) month, quarter(EntryDate) quarter, AccountNumber, CreditBase, DebitBase
  FROM prod.gold.finance_financeentry
  WHERE EntryDate BETWEEN DATE '2022-01-01' AND DATE '2023-02-28'
)
PIVOT (SUM(CreditBase - DebitBase) AS BalanceInBase
  FOR month
  IN (1 JAN, 2 FEB, 3 MAR, 4 APR, 5 MAY, 6 JUN,
      7 JUL, 8 AUG, 9 SEP, 10 OCT, 11 NOV, 12 DEC)
  FOR quarter
  IN (1 Q1, 2 Q2, 3 Q3, 4 Q4)
  )&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Is this possible somehow?&lt;/P&gt;</description>
      <pubDate>Wed, 15 Mar 2023 13:23:15 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/pivot-on-month-and-quarter/m-p/7685#M3478</guid>
      <dc:creator>ossinova</dc:creator>
      <dc:date>2023-03-15T13:23:15Z</dc:date>
    </item>
    <item>
      <title>Re: PIVOT on month and quarter</title>
      <link>https://community.databricks.com/t5/data-engineering/pivot-on-month-and-quarter/m-p/7686#M3479</link>
      <description>&lt;P&gt;Hi @Oscar Dyremyhr​&amp;nbsp;, PIVOT doesn't support two FOR clauses. You can PIVOT either on month or on quarter.&lt;/P&gt;&lt;P&gt;&lt;A href="https://docs.databricks.com/sql/language-manual/sql-ref-syntax-qry-select-pivot.html" target="test_blank"&gt;https://docs.databricks.com/sql/language-manual/sql-ref-syntax-qry-select-pivot.html&lt;/A&gt; &lt;/P&gt;</description>
      <pubDate>Wed, 15 Mar 2023 16:53:59 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/pivot-on-month-and-quarter/m-p/7686#M3479</guid>
      <dc:creator>Lakshay</dc:creator>
      <dc:date>2023-03-15T16:53:59Z</dc:date>
    </item>
  </channel>
</rss>

