Utilisant SUM// sans regrouper les résultats

j'avais lu
https://coderoad.ru/2381053/
, Mais ne pouvait pas comprendre comment la mettre en œuvre pour mon problème particulier. je le sais
SUM//

- cette fonction agrégée et n'a aucun sens de ne pas l'utiliser comme tel, mais dans ce cas particulier, je devrais
SUM//

Tous les résultats, tout en maintenant chaque ligne individuelle.

Voici le tableau:


--ID-- --amount--
1 23
2 11
3 8
4 7


j'ai besoin de
SUM//

Quantité, mais garder chaque enregistrement, la conclusion devrait donc être comme celle-ci:


--ID-- --amount--
1 49
2 49
3 49
4 49


J'ai eu cette demande, mais elle résume chaque ligne, et tous les résultats ne sont pas ensemble:


SELECT 
a.id,
SUM/b.amount/

FROM table1 as a
JOIN table1 as b ON a.id = b.id
GROUP BY id


Sans
SUM//

Il ne renverra qu'une seule ligne, mais j'ai besoin de tout garder ID...

Remarque: Oui, c'est un exemple assez simple et je pourrais utiliser php À cette fin, il est évident que la table de plus et offre plus de chaînes et de colonnes, mais ce n'est pas à ce sujet.
Invité:

Eugene

Confirmation de:

SELECT a.id, b.amount
FROM table1 a
CROSS JOIN
/
SELECT SUM/amount/ amount FROM table1
/ b


Vous devez exécuter
http://en.wikipedia.org/wiki/J ... _join
Valeurs sum chaque table de rangée avec chacun
id

. Puisqu'il n'y a qu'un seul résultat de rétroaction /
49

/, Il est principalement attaché à chaque
id

.

Babette

Confirmation de:

DE
MS SQL

vous pouvez utiliser
OVER//



select id, SUM/amount/ OVER//
from table1;

select id, SUM/amount/ OVER//
from /
select 1 as id, 23 as amount
union all
select 2 as id, 11 as amount
union all
select 3 as id, 8 as amount
union all
select 4 as id, 7 as amount
/ A


https://i.stack.imgur.com/1HU0Z.png

--- OVER PARTITION ID



PARTITION BY

, ce qui est très utile quand vous voulez faire
SUM//

par MONTH, Par exemple, ou faire des rapports de vente trimestriels ou annuels ...
/Notez que
distinct

il fait pour toutes les lignes/


select distinct id, SUM/amount/ OVER/PARTITION BY id/ as [SUM_forPARTITION]
from /
select 1 as id, 23 as amount
union all
select 1 as id, 23 as amount
union all
select 2 as id, 11 as amount
union all
select 2 as id, 11 as amount
union all
select 3 as id, 8 as amount
union all
select 4 as id, 7 as amount
/ OverPARTITIONID


https://i.stack.imgur.com/z3pfg.png

Gaetan

Confirmation de:

Attacher la table source à sum Utilisation de sous-requête:


SELECT * FROM table1, /SELECT SUM/amount/ FROM table1 AS amount/ t

Damien

Confirmation de:

Cela ne fait qu'une demande.
sum//

, alors il doit faire OK:


SELECT a.id, b.amount
FROM table1 a
cross join /SELECT SUM/amount/ as amount FROM table1 AS amount/ b

Pour répondre aux questions, connectez-vous ou registre