Намерете редовете, които искате да изтриете, с тази заявка:
изберете t0.* от tbl_entso_cdbf t0join tbl_entso_cdbf t1 на t1.Utc =t0.Utc и t1.date =t0.date и t1.area_in =t0.area_out и t1.area_out =t0.area_inwhere t0.value =0 и (t1.value <> 0 или t1.area_in
Условията са:
стойност =0
- Има друг ред със същия
Utc
и същатадата
ноarea_in
иarea_out
се превключват. стойността
на другия ред не е0
илиarea_in
е по-малък.
Заявката ще върне следните редове:
<предварителен код>| UTC | дата | площ_в | area_out | стойност ||-------------------|--------------------|----- ----|----------|-------|| 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 |Сега го използвайте в подзаявка на оператора за изтриване:
изтрийте t1from tbl_entso_cdbf t1natural join ( изберете t0.* от tbl_entso_cdbf t0 join tbl_entso_cdbf t1 на t1.Utc =t0.Utc и t1.date =t0.date и t1.area_in =t0.area_out и t1.area_out =t0.area_in където t0.value =0 и (t1.value <> 0 или t1.area_in
ЕСТЕСТВЕНО СЪЕДИНЯВАНЕ
означава, че всички стойности на колони трябва да са равни. Ако сте имали първичен (или който и да е уникален) ключ, ще трябва да изберете само колоните с първичен (уникален) ключ в подзаявката вместо *
.
Сега в таблицата са останали само следните редове:
<предварителен код>| UTC | дата | площ_в | area_out | стойност ||-------------------|--------------------|----- ----|----------|-------|| 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 |