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

क्या ये दो प्रश्न समान हैं - GROUP BY बनाम DISTINCT?

आपके उदाहरण #2 ने मुझे थोड़ी देर के लिए सिर खुजलाया था - मैंने अपने आप से सोचा:"आप DISTINCT नहीं कर सकते एक कॉलम, इसका क्या मतलब होगा?" - जब तक मुझे एहसास नहीं हुआ कि क्या हो रहा है।

जब आपके पास

SELECT DISTINCT(t.ItemNumber)

आप नहीं हैं , दिखावे के बावजूद, वास्तव में t.ItemNumber . के अलग-अलग मान मांग रहे हैं ! आपका उदाहरण #2 वास्तव में उसी तरह पार्स किया जाता है जैसे

SELECT DISTINCT
  (t.ItemNumber)
  ,
  (SELECT TOP 1 ItemDescription
   FROM Transactions
   WHERE ItemNumber = t.ItemNumber
   ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t

t.ItemNumber के आसपास वाक्य-रचना-सही लेकिन अनावश्यक कोष्ठकों के साथ . यह समग्र रूप से परिणाम-सेट के लिए है DISTINCT लागू होता है।

इस मामले में, चूंकि आपका GROUP BY . है कॉलम द्वारा समूह जो वास्तव में भिन्न होता है, आपको वही परिणाम मिलते हैं। मैं वास्तव में थोड़ा हैरान हूं कि SQL सर्वर नहीं करता है (GROUP BY . में) उदाहरण) जोर देकर कहते हैं कि सबक्वायर्ड कॉलम का उल्लेख GROUP BY . में किया गया है सूची।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2008 - VARCHAR बनाम NVARCHAR मानों पर विभिन्न प्रकार के आदेश

  2. SQL सर्वर:स्प्लिट ऑपरेशन

  3. डेटाबेस में डुप्लिकेट अस्थायी रिकॉर्ड मर्ज करें

  4. फाइलस्ट्रीम का उपयोग करके बड़ी मात्रा में डेटा का प्रबंधन कैसे करें क्योंकि डेटा संग्रहण के लिए केवल स्थानीय पथ समर्थित हैं?

  5. SQL सर्वर डेटाबेस टेबल कॉलम में इमेज कैसे स्टोर करें