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

SQL - काम न करके पिवट टेबल और ग्रुप

आप GROUP BY activity, document, extraction नहीं कर सकते PIVOT . के अंदर टेबल ऑपरेटर, PIVOT ऑपरेटर स्वचालित रूप से समूहीकृत कॉलम का अनुमान लगाता है। लेकिन आप इसे इस तरह लिख सकते हैं:

WITH Pivoted
AS
(
  SELECT *
  FROM table1
  PIVOT 
  ( 
    sum([Count]) FOR [Type] IN ( Document , 
                                Extraction)
  ) AS p
) 
SELECT 
  product,
  SUM(Users) AS TotalUsers,
  MAX(DAte) AS LatestDate,
  MAX(Document) AS Document,
  MAX(Extraction) AS Extraction
FROM Pivoted
GROUP BY Product;

SQL Fiddle Demo

यह आपको देगा:

| PRODUCT | TOTALUSERS |                   LATESTDATE | DOCUMENT | EXTRACTION |
-------------------------------------------------------------------------------
|   prodA |         60 | March, 02 2013 02:00:00+0000 |      113 |        152 |
|   prodB |         45 | March, 02 2013 02:00:00+0000 |       40 |         73 |

अपडेट 1

WITH a
AS(
  SELECT    
    activity, 
    username, 
    [Last Accessed] = max(DATEADD(dd, 
                                  DATEDIFF(d, 0, ActDateTime), 
                                  0)), 
    --[#Users] = count(distinct username), 
    CASE 
      WHEN COUNT(activity) IS NOT NULL THEN 1 
      ELSE 0 
    END AS Count,
    CASE 
      WHEN pageURL LIKE '/Document%'
        OR pageURL LIKE '/Database%' THEN 'Document'
      ELSE 'Extraction' 
    END AS [Type] 
  from activitylog
  where pageURL not like '%home%' 
    AND pageURL not like '/Default%'
  group by activity, 
           username, 
           ...
), Pivoted
AS
(
  SELECT *
  FROM a
  PIVOT 
  ( 
    sum([Count]) FOR [Type] IN ( Document , 
                                 Extraction)
   ) AS p
) 
SELECT 
  product,
  SUM(Users) AS TotalUsers,
  MAX(DAte) AS LatestDate,
  MAX(Document) AS Document,
  MAX(Extraction) AS Extraction
FROM Pivoted
GROUP BY Product; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओडीबीसी और एसक्यूएल सर्वर 2008:तैयार बयानों का उपयोग नहीं कर सकते हैं?

  2. SQL परिणाम फ्लिप करें

  3. SQL सर्वर में क्षैतिज रूप से दो से अधिक तालिकाओं को संयोजित करें

  4. क्या स्थानीय चरों के लिए संग्रहीत कार्यविधि इनपुट पैरामीटर निर्दिष्ट करने से क्वेरी को अनुकूलित करने में मदद मिलती है?

  5. क्या लिंक किए गए सर्वर के लिए कोई IF EXISTS परीक्षण है?