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

MySQL में प्रत्येक समूह के लिए रनिंग योग की गणना कैसे करें

पहले सीटीई में प्रत्येक महीने के स्कोर के रनिंग योग की गणना करें।
फिर अपनी शर्तें लागू करें:

with cte as (
  select date_format(dateOfExam, '%Y-%m') ExamMonth,
         dateOfExam, score, 
         sum(score) over (partition by date_format(dateOfExam, '%Y-%m') order by dateOfExam) total
  from student
)
select ExamMonth, dateOfExam, score, 
       case when sum(total >= 10) over (partition by ExamMonth order by dateOfExam) = 1 then 'Y' end Reward1,
       case when sum(total >= 20) over (partition by ExamMonth order by dateOfExam) = 1 then 'Y' end Reward2
from cte

डेमो देखें .
परिणाम:

> ExamMonth | dateOfExam | score | Reward1 | Reward2
> :-------- | :--------- | ----: | :------ | :------
> 2020-05   | 2020-05-28 |     5 | null    | null   
> 2020-05   | 2020-05-29 |     5 | Y       | null   
> 2020-05   | 2020-05-30 |    10 | null    | Y      
> 2020-06   | 2020-06-03 |    10 | Y       | null   
> 2020-06   | 2020-06-05 |     5 | null    | null   
> 2020-07   | 2020-07-21 |    20 | Y       | Y      
> 2020-07   | 2020-07-22 |    10 | null    | null   
> 2020-07   | 2020-07-28 |    10 | null    | 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. मैसकल:दो तिथियों के बीच सभी डेटा का चयन करें

  2. Group Concat Mysql के प्रत्येक विशिष्ट मान के लिए अवसर की संख्या कैसे प्राप्त करें, इस पर सुधार करें

  3. PHP में ज़िप कोड के बीच की दूरी की गणना

  4. यदि डेटाबेस बदलता है तो सामग्री को स्वचालित रूप से ताज़ा करें

  5. एसक्यूएल दो कॉलम के संयोजन के लिए अलग रिकॉर्ड प्राप्त करने के लिए (आदेश के बावजूद)