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

मिन हटाओ sql में तालिका से दो मानों की तुलना करने के बाद रिकॉर्ड से मान

इस क्वेरी के साथ वे पंक्तियाँ खोजें जिन्हें आप हटाना चाहते हैं:

select t0.* 
from tbl_entso_cdbf t0
join tbl_entso_cdbf t1
  on  t1.Utc  = t0.Utc
  and t1.date = t0.date
  and t1.area_in  = t0.area_out
  and t1.area_out = t0.area_in
where t0.value = 0
  and (t1.value <> 0 or t1.area_in < t0.area_in);

शर्तें हैं:

  • value = 0
  • एक ही Utc के साथ एक और पंक्ति है और वही date लेकिन area_in और area_out स्विच कर रहे हैं।
  • value दूसरी पंक्ति का 0 नहीं है या area_in छोटा है।

क्वेरी निम्नलिखित पंक्तियों को वापस कर देगी:

|               Utc |                date | area_in | area_out | value |
|-------------------|---------------------|---------|----------|-------|
| 2015-12-05T03:00Z | 2015-12-05 03:00:00 |      40 |      275 |     0 |
| 2015-12-06T03:00Z | 2015-12-06 03:00:00 |     175 |      100 |     0 |
| 2015-11-04T03:00Z | 2015-11-04 03:00:00 |     310 |      280 |     0 |
| 2016-09-19T00:00Z | 2016-09-19 00:00:00 |     292 |      187 |     0 |

अब इसे डिलीट स्टेटमेंट की सबक्वेरी में इस्तेमाल करें:

delete t1
from tbl_entso_cdbf t1
natural join (
    select t0.*
    from tbl_entso_cdbf t0
    join tbl_entso_cdbf t1
      on  t1.Utc  = t0.Utc
      and t1.date = t0.date
      and t1.area_in  = t0.area_out
      and t1.area_out = t0.area_in
    where t0.value = 0
      and (t1.value <> 0 or t1.area_in < t0.area_in)    
) t0;

NATURAL JOIN इसका मतलब है कि सभी कॉलम मान बराबर होने चाहिए। यदि आपके पास प्राथमिक (या कोई अद्वितीय) कुंजी है, तो आपको * के बजाय सबक्वेरी में केवल प्राथमिक (अद्वितीय) कुंजी कॉलम का चयन करना होगा ।

अब तालिका में केवल निम्नलिखित पंक्तियाँ बची हैं:

|               Utc |                date | area_in | area_out | value |
|-------------------|---------------------|---------|----------|-------|
| 2015-12-05T03:00Z | 2015-12-05 03:00:00 |     275 |       40 |   320 |
| 2015-12-06T03:00Z | 2015-12-06 03:00:00 |     100 |      175 |   550 |
| 2015-11-04T03:00Z | 2015-11-04 03:00:00 |     280 |      310 |     0 |
| 2016-09-19T00:00Z | 2016-09-19 00:00:00 |     187 |      292 |    45 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फ़ील्ड को एक साथ कैसे मर्ज करें और php और sql में आउटपुट कैसे प्रदर्शित करें?

  2. मैक ओएस एक्स शेर पर रेल 3.2.0 पर रूबी के साथ एमएएमपी 2.0.1

  3. चुनें * टीबीएल से जहां CONCAT ('%', <अन्य sql क्वेरी LIMIT 1>, '%') पसंद है - कैसे?

  4. सप्ताह संख्या के आधार पर MYSQL से डेटा पुनर्प्राप्त करना

  5. मैसकल डेटिफ क्वेरी