私は4列と5行のテーブルを持っています。 MySQLで可能ですか?私は必要なものすべての行を取得し、列に合計を適用する
name id rank points
sam 1 4 34
ram 2 6 45
hari 3 1 87
kum 4 7 56
raj 5 5 20
は、名前IDのランクポイントと4
上記ランクは結果
name id rank points sum
ram 2 6 45 121
kum 4 7 56
raj 5 5 20
私は4列と5行のテーブルを持っています。 MySQLで可能ですか?私は必要なものすべての行を取得し、列に合計を適用する
name id rank points
sam 1 4 34
ram 2 6 45
hari 3 1 87
kum 4 7 56
raj 5 5 20
は、名前IDのランクポイントと4
上記ランクは結果
name id rank points sum
ram 2 6 45 121
kum 4 7 56
raj 5 5 20
うーん予想ポイントの合計です。 。 。
select name, id, rank, points,
(select sum(t2.points) from t t2 where t2.rank > 4) as `sum`
from t
where rank > 4;
これは、各列にsum
を置き、それは合理的なアプローチのように思えます。
、私が使用したDML & DDLは次のとおりです。それを行うための
CREATE TABLE `users` (
`name` varchar(5),
`id` int,
`rank` int,
`points` int
);
INSERT INTO users (
`name`, `id`, `rank`, `points`
) VALUES (
'sam', 1, 4, 34
), (
'ram', 2, 6, 45
), (
'hari', 3, 1, 87
), (
'kum', 4, 7, 56
), (
'raj', 5, 5, 20
);
、あなたは別のクエリを持っているが必要:
SELECT SUM(`points`) FROM `users` WHERE `rank` > 4
そして私です最後にこれを追加することをお勧めします。
SELECT *, (
SELECT SUM(`points`) FROM `users` WHERE `rank` > 4
) AS `sum` FROM `users` WHERE `rank` > 4
上記は、出力としてこれを与える:
+------+----+------+--------+-----+
| name | id | rank | points | sum |
+------+----+------+--------+-----+
| ram | 2 | 6 | 45 | 121 |
| kum | 4 | 7 | 56 | 121 |
| raj | 5 | 5 | 20 | 121 |
+------+----+------+--------+-----+
あなたはSQL DMLを与えることができればそれは本当に参考になります。同時に、SQLでは異なるクエリを使用することだけが可能です。あなたは私が信じるそれらを組み合わせることはできません。 –
これはできません。ただ1つの行に値を持つことはできません。 – Jens
私はmysql @ praveenを使用しています。他の列のNullも使用できます。私は同じテーブルのデータに対してdbを2回ヒットしたくない –