【发布时间】:2019-10-04 07:52:03
【问题描述】:
我有一个评分表。
CREATE TABLE merchants_rating(
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE,
merchant_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE,
rating INTEGER NOT NULL
);
我想往里面插入数据,得到卖家评分和评分用户数之和。
我提出了一个请求。
WITH INSERT_ROW AS (
INSERT INTO MERCHANTS_RATING (USER_ID, MERCHANT_ID, RATING)
VALUES(147, 92, 2)
)
SELECT SUM(R.RATING) AS SUMMA_RATING, COUNT(R.USER_ID) AS USER_COUNT
FROM MERCHANTS_RATING AS R
WHERE R.MERCHANT_ID = 92
数据添加成功,但是输出有问题。当表为空并且我第一次向其中添加数据时,我会得到这样的值。
SUMMA_RATING | USER_COUNT |
----------------------------
NULL | 0 |
虽然我希望收到。
SUMMA_RATING | USER_COUNT |
----------------------------
2 | 1 |
由于一位用户对卖家进行了评价。
我做错了什么?
【问题讨论】:
标签: sql postgresql sql-insert common-table-expression