2013-07-15 4 views
5

सबसे तेजी से 'द्वारा समूह के' वहाँ मैं GROUP BY आदेश कैसे संपादित में कोई अंतर है?SQL स्क्रिप्ट

मेरी कोड:

SELECT Number, Id 
    FROM Table 
    WHERE(....) 
    GROUP BY Id, Number 

यह तेजी से अगर मैं इसे इस तरह संपादित है:

SELECT Number, Id 
    FROM Table 
    WHERE(....) 
    GROUP BY Number , Id 

उत्तर

2

इस उदाहरण के बराबर हैं उत्पादन होगा।

DDL:

CREATE TABLE dbo.[WorkOut] 
(
    [WorkOutID] [bigint] IDENTITY(1,1) NOT NULL PRIMARY KEY, 
    [TimeSheetDate] [datetime] NOT NULL, 
    [DateOut] [datetime] NOT NULL, 
    [EmployeeID] [int] NOT NULL, 
    [IsMainWorkPlace] [bit] NOT NULL, 
    [DepartmentUID] [uniqueidentifier] NOT NULL, 
    [WorkPlaceUID] [uniqueidentifier] NULL, 
    [TeamUID] [uniqueidentifier] NULL, 
    [WorkShiftCD] [nvarchar](10) NULL, 
    [WorkHours] [real] NULL, 
    [AbsenceCode] [varchar](25) NULL, 
    [PaymentType] [char](2) NULL, 
    [CategoryID] [int] NULL 
) 

क्वेरी:

SELECT wo.WorkOutID, wo.TimeSheetDate 
FROM dbo.WorkOut wo 
GROUP BY wo.WorkOutID, wo.TimeSheetDate 

SELECT DISTINCT wo.WorkOutID, wo.TimeSheetDate 
FROM dbo.WorkOut wo 

SELECT wo.DateOut, wo.EmployeeID 
FROM dbo.WorkOut wo 
GROUP BY wo.DateOut, wo.EmployeeID 

SELECT DISTINCT wo.DateOut, wo.EmployeeID 
FROM dbo.WorkOut wo 

निष्पादन योजना:

pp

+0

सावधान रहो के साथ करने की कोशिश के रूप में अपने उदाहरण कहा गया है कि यह सब एक ही है; लेकिन आपको डुप्लीकेट को खत्म करने के लिए समूह का उपयोग नहीं करना चाहिए, यह सही नहीं है और वास्तविक तालिकाओं (इंडेक्स के उपयोग की वजह से) की स्थिति में विभिन्न निष्पादन योजनाओं का परिणाम हो सकता है – jazzytomato

+1

क्या कम से कम? कृपया टिप्पणी करें। – Devart

+0

@ थॉमस हरैटिक, वास्तविक तालिका के लिए निष्पादन योजना जोड़ें। – Devart

3

यह DISTINCT उपयोग करने के लिए यदि आप डेटा को समेकित करने के लिए नहीं करना चाहते हैं बेहतर है। अन्यथा, वहाँ दो प्रश्नों आपके द्वारा दी गई कोई अंतर नहीं है, यह एक ही क्वेरी योजना

+0

इसलिए चयन कमांड में कॉलम के क्रम में समूह में कमांड के कॉलम के क्रम से कुछ लेना देना नहीं है? – nionios

+0

कोई यह नहीं है, लेकिन यह समझ में आता है: एक * ग्रुप द्वारा * अपने आप को कम डेटा, एक कागज और एक पेंसिल :) – jazzytomato

संबंधित मुद्दे