recherche

Maison  >  Questions et réponses  >  le corps du texte

Requête pour calculer la moyenne de chaque trimestre

Je suis nouveau sur MySQL et j'ai besoin de votre aide pour trouver une requête afin de pouvoir calculer la moyenne pour chaque trimestre. J'ai un tableau appelé USretail92_21 qui ressemble à ceci (de 1992 à 2021) :

Date Ventes
01/01/1992 701.0
01/02/1992 658.0
01/03/1992 731.0
1992-04-01 816.0
1992-05-01 856.0
1992-06-01 853.0
1992-07-01 101.0
1992-08-01 558.0
01/09/1992 431.0

Considérez le format de date 1992-01-01 pour représenter janvier 1992. Maintenant, je lance la requête suivante pour obtenir le trimestre et le mois :

选择年份(日期)为年份,月份名称(日期)为月份,季度(日期)为季度,销售额来自 USretail92_21,其中 kind="男装店" order by 1 Cela me donne cette perspective :

année mois Quartier Ventes
1992 Janvier 1 701.0
1992 Février 1 658.0
1992 Mars 1 731.0
1992 avril 2 816.0
1992 Mai 2 856.0
1992 Juin 2 853.0

Maintenant, ma question est de savoir comment obtenir les ventes moyennes par trimestre et obtenir le résultat comme indiqué ci-dessous :

Quartier année Ventes moyennes
1 1992 696 (moyenne janvier/février/mars)
2 1992 841

En fin de compte, je souhaite dessiner un graphique en Python avec les ventes comme axe Y et "T1_92 à Q4_21" comme axe X

P粉521697419P粉521697419305 Il y a quelques jours415

répondre à tous(1)je répondrai

  • P粉788765679

    P粉7887656792024-01-30 09:01:32

    Vous devez utiliser GROUP BY pour calculer des agrégations telles que des sommes et des moyennes.

    À partir de votre exemple :

    WITH SalesPerMonth AS (
      select year(date) as Year,
      monthname(date)as Month, 
      quarter(date) as Quarter, 
      sales from USretail92_21 
      where kind="Men's clothing stores" 
    )
    SELECT Quarter, Year, AVG(Sales) AS AverageSales
    FROM SalesPerMonth 
    GROUP BY Quarter, Year

    Ou faites tout cela en même temps :

    select year(date) as Year,
           quarter(date) as Quarter, 
           AVG(sales) AverageSales
    from USretail92_21 
    where kind="Men's clothing stores"
    group by year(date),
             quarter(date)

    répondre
    0
  • Annulerrépondre