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

MYSQL QUERY NULL मान को एक पंक्ति में औसत मानों से बदलें

मैं मानता हूं कि सबसे सुंदर नहीं है, लेकिन यह आपको वह प्राप्त करना चाहिए जो आप चाहते हैं।

मुझे यकीन नहीं है कि आप उन NULL मानों को कैसे संभालना चाहते हैं जिनके पास एक घंटे का औसत NULL है। नीचे दिए गए उदाहरण में ये -1 में अपडेट हो जाएंगे।

create table myTable
(myDate datetime not null,
P_f decimal(10,5) default null
);

insert into myTable(myDate,P_f) values ('2001-01-01 20:20:00',1.88);
insert into myTable(myDate,P_f) values ('2001-01-01 20:25:00',NULL);
insert into myTable(myDate,P_f) values ('2001-01-01 20:30:00',NULL);
insert into myTable(myDate,P_f) values ('2001-01-01 20:35:00',1.71);
insert into myTable(myDate,P_f) values ('2001-01-01 20:40:00',NULL);
insert into myTable(myDate,P_f) values ('2001-01-01 20:45:00',NULL);
insert into myTable(myDate,P_f) values ('2001-01-01 20:50:00',NULL);
insert into myTable(myDate,P_f) values ('2001-01-01 20:55:00',1.835);
insert into myTable(myDate,P_f) values ('2001-01-01 21:00:00',1.918);
insert into myTable(myDate,P_f) values ('2001-01-01 21:05:00',1.968);
insert into myTable(myDate,P_f) values ('2001-01-01 21:10:00',2.004);
insert into myTable(myDate,P_f) values ('2001-01-01 21:15:00',1.924);
insert into myTable(myDate,P_f) values ('2001-01-01 21:20:00',1.8625);
insert into myTable(myDate,P_f) values ('2001-01-01 21:25:00',1.94);
insert into myTable(myDate,P_f) values ('2001-01-01 21:30:00',2.0375);
insert into myTable(myDate,P_f) values ('2001-01-01 21:35:00',1.912);
insert into myTable(myDate,P_f) values ('2001-01-02 20:40:00',NULL);

-- Insert copy of null value P_f rows into myTable with 1 hour average about myDate 
insert into myTable
(myDate,P_f)
select t.myDate,ifnull((select avg(P_f) from myTable t1 where t1.myDate between t.myDate - interval 1 hour and t.myDate +interval 1 hour),-1) as hourAvg
from myTable t
where t.P_f is null;

-- delete rows where P_f is null
delete from myTable
where P_f is null;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL भंडारण अवधि समय - डेटाटाइप?

  2. Linux 12.04 पर लैम्प, Xampp में MySQL निष्क्रिय

  3. साझा सर्वर पर MySQL उपयोगकर्ता विशेषाधिकार

  4. MySQL को बेसेक्स से कैसे कनेक्ट करें?

  5. आईपी ​​​​पते के आधार पर बड़ी संख्या में पदों का भौगोलिक स्थान। (880,000 पंक्तियाँ)