我有一个使用sql从数据库中选择的值表。
SELECT
a.Chapter, a.price, b.book
FROM
Table1 a, Table2 b, Table3 c
WHERE
a.id = c.id and b.id = c.id2
GROUP BY
a.Chapter, a.price
ORDER BY
a.Chapter
它带来的价值是:
|Chapter|Price|book|
|_______|_____|____|
|01 | 25 |eg1 |
|01 | 23 |eg2 |
|01 | 9 |eg3 |
|02 | 15 |eg4 |
|02 | 89 |eg5 |
|02 | 11 |eg6 |
|02 | 3 |eg7 |
|02 | 25 |eg8 |
如何获取每个重复01的价格(因为它不是书的章节,因为它是字符串格式)并将它们加在一起并使它们成为新价格?例如:
Chapter Price
01 57
02 143
书籍部分目前并不重要,因此可以排除
答案 0 :(得分:1)
你在做什么是错的。您按章和价格分组,但您也选择了该书。本书将是与章节和价格任意选择相匹配的书籍之一。所以有了这个数据
book chapter price eg1 01 25 eg1 02 30 eg2 01 25 eg3 01 30
你可能会得到
book chapter price eg1 01 25 eg1 02 30 eg3 01 30
因此压抑了书籍.2。
无论如何,每章都会使用GROUP BY chapter
获得一个结果行。您可以获得SUM
的总和。
select chapter, sum(price)
from chapters
group by chapter;
order by chapter;
答案 1 :(得分:0)
你试过DISTINCT吗?
SELECT DISTINCT x
from table1
where example = example2
答案 2 :(得分:0)
SELECT a.Chapter, sum(a.price)
FROM Table1 a
INNER JOIN Table3 c on c.id = a.id
INNER JOIN Table2 b on b.id = c.id
GROUP BY
a.Chapter
ORDER BY
a.Chapter
答案 3 :(得分:0)
它只能用一个表来实现
SELECT
a.Chapter, SUM(a.price) as price
FROM
Table1 a
GROUP BY
a.Chapter
ORDER BY
a.Chapter