Actuellement, j'utilise MySQL - mais migrer vers SQL Server bientôt - alors les deux sont pour la solution ok!
J'ai un schéma de base de données comme (candidat de table): p>
| KW | counts | cumulated | +-----------+-----------------+-------------+ | 1 | 2 | 2 | | 2 | 19 | 21 | | 3 | 18 | 39 | | 4 | 21 | 60 |
4 Réponses :
Vous pouvez essayer ceci dans SQL Server: sortie: p>
Je pense que cela devrait fonctionner. Je ne sais pas si c'est le plus efficace.
SELECT WEEK(intern)+1 as KW, count(intern) as counts into #tempCount
from epunkt_sourcing.candidate
WHERE WEEK(intern) IS NOT NULL AND YEAR(intern) = 2020
GROUP BY WEEK(intern)
select
a.kw
,a.counts
,sum(b.counts) as cumulated
from #tempCount a
inner join #tempCount b on a.kw >= b.kw
group by a.kw, a.counts
order by a.kw
Veuillez essayer la requête ci-dessous, espérons que cela aidera:
SELECT t.KW, t.counts, @cum_total:=@cum_total + t.counts AS cumulative_sum
FROM
(
SELECT WEEK(intern)+1 as KW, count(intern) as counts
FROM epunkt_sourcing.candidate
WHERE WEEK(intern) IS NOT NULL AND YEAR(intern) = 2020
GROUP BY WEEK(intern)
) AS t
JOIN (SELECT @cum_total:=0) r;
Dans MySQL et SQL Server, vous devriez utiliser des sommes cumulatives. La version MySQL est la suivante: dans SQL Server, vous utiliserez: p> notes: p>
par code>. LI>
MySQL ou SQL Server? Vous avez marqué les deux?
J'utilise MySQL en ce moment - mais migrez dans les prochaines semaines vers SQL Server - donc les deux sont pour la solution d'accord
Actuellement, j'utilise MySQL i> quelle version? Ceci est critique pour votre question.
... et fournir un échantillon de violon (et montrer le résultat souhaité pour les données de violon, non abstrait).
Désolé - c'est la version 5.7.21
La somme cumulative de cette version MySQL est implémentée en utilisant 2 copies de table ou à l'aide de variables définies par l'utilisateur. Les deux méthodes doivent être entièrement réécrites lors de l'utilisation de SQL Server où
somme () sur () code> existe. Si vous migrez à SQL Server - Mettez à jour votre version MySQL à la dernière version (8.0.19).Ps. Votre requête ne contient pas de commande par clause - la commande d'enregistrements n'est donc pas spécifiée, donc «la somme cumulative» n'a aucun sens.