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

दैनिक राजस्व हिस्सेदारी के आधार पर निश्चित मान को देशों में विभाजित करते समय कुछ मानों को शामिल न करें

आप case का उपयोग कर सकते हैं भाव, दोनों आसपास गणना और भीतर विंडो sum :

select 
    sales_date, 
    country, 
    sum(sales_volume),
    case when country <> 'NL'
        then sum(sum(fix_costs)) over(partition by year(sales_date), month(sales_date))
            / day(last_day(sales_date)) 
            * sum(sales_volume)
            / sum(case when country <> 'NL' then sum(sales_volume) else 0 end) over(partition by sales_date)
    else 0
    end as fix_cost_per_day
from sales
group by 1,2;

DB Fiddle पर डेमो :

sales_date | country | sum(sales_volume) | fix_cost_per_day
:--------- | :------ | ----------------: | ---------------:
2020-01-03 | DE      |               500 |      37.95066414
2020-01-03 | FR      |               350 |      26.56546490
2020-01-03 | NL      |               320 |             null
2020-01-30 | None    |                 0 |             null
2020-02-15 | DE      |               700 |     137.14733542
2020-02-15 | FR      |               180 |      35.26645768
2020-02-15 | NL      |               420 |             null
2020-02-29 | None    |                 0 |             null
2020-03-27 | DE      |               180 |      20.19635344
2020-03-27 | FR      |               970 |     108.83590463
2020-03-27 | NL      |               670 |             null
2020-03-31 | None    |                 0 |             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. मैं जल्दी से एक MySQL डेटाबेस का नाम कैसे बदलूँ (स्कीमा नाम बदलें)?

  3. कैसे लार्वा के साथ mysql से कनेक्ट करने के लिए?

  4. MySql कॉलम auto_increment नहीं बना सकता

  5. प्ले 2.4 - स्लीक 3.0.0 - DELETE काम नहीं कर रहा है