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

एसएएस में डेटा स्टेटमेंट वास्तव में क्या कर रहा है? पोस्टग्रेएसक्यूएल समकक्ष?

कथन 'समूह प्रसंस्करण द्वारा' कहलाता है का उपयोग कर रहा है। चरण चलने से पहले, यह आवश्यक है कि डेटा को btn wtn resp_ji द्वारा क्रमबद्ध किया जाए .

first.resp_ji टुकड़ा यह देखने के लिए जाँच कर रहा है कि क्या यह पहली बार वर्तमान btn/wtn संयोजन के भीतर resp_ji का वर्तमान मान देखा गया है। इसी तरह last.resp_ji टुकड़ा जाँच कर रहा है कि क्या यह अंतिम बार है कि उसे resp_ji का वर्तमान मान दिखाई देगा वर्तमान बीटीएन/डब्ल्यूटीएन संयोजन के भीतर।

इन सबको मिलाकर कथन:

if not (first.resp_ji and last.resp_ji);

कह रहा है, यदि btn/wtn के वर्तमान संयोजन के लिए resp_ji का वर्तमान मान कई बार होता है तो रिकॉर्ड रखें, अन्यथा रिकॉर्ड को त्याग दें। if . का व्यवहार बयान जब इस तरह इस्तेमाल किया जाता है तो रिकॉर्ड को परोक्ष रूप से रखता/छोड़ देता है।

SQL में समकक्ष करने के लिए, आप कुछ ऐसा कर सकते हैं:

  1. छोड़ने के लिए सभी रिकॉर्ड खोजें।
  2. उन अभिलेखों को मूल डेटासेट से हटा दें।

तो...

create table rows_to_discard as 
select btn, wtn, resp_ji, count(*) as freq
from mytable
group by btn, wtn, resp_ji
having count(*) = 1

create table want as 
select a.*
from mytable a
left join rows_to_discard b  on b.btn = a.btn
                            and b.wtn = a.wtn
                            and b.resp_ji = a.resp_ji
where b.btn is null

संपादित करें :मुझे यह उल्लेख करना चाहिए कि कोई साधारण SQL समकक्ष नहीं है। यह सबक्वायरीज़ में पंक्तियों को क्रमांकित करके और फिर उसके ऊपर तर्क बनाकर संभव हो सकता है, लेकिन यह उघ-गीत होगा। यह उपयोग किए जा रहे SQL के विशिष्ट स्वाद पर भी निर्भर हो सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या तालिका को संशोधित करने का कोई सुरक्षित तरीका है pg_constraint ताकि कोई और जाँच न की जाए (अस्थायी रूप से)?

  2. java.lang.ClassNotFoundException:org.postgresql.Driver

  3. INSERT ... ON CONFLICT ... के साथ सभी कॉलम कैसे अपडेट करें?

  4. अतिरिक्त (विशिष्ट) फ़िल्टर वाले कुल कॉलम

  5. Npgsql - निर्दिष्ट विधि समर्थित नहीं है