我正在学CTE,我正忙于做一个练习。请看下表:
+----+------------+--------------+---------+------------+------------+
| id | project_id | supporter_id | amount | amount_eur | donated |
+----+------------+--------------+---------+------------+------------+
| 1 | 4 | 4 | 928.40 | 807.70 | 2016-09-07 |
| 2 | 8 | 18 | 384.38 | 334.41 | 2016-12-16 |
| 3 | 6 | 12 | 367.21 | 319.47 | 2016-01-21 |
| 4 | 2 | 19 | 108.62 | 94.50 | 2016-12-29 |
| 5 | 10 | 20 | 842.58 | 733.05 | 2016-11-30 |
| 6 | 4 | 15 | 653.76 | 568.77 | 2016-08-05 |
+----+------------+--------------+---------+------------+------------+
项目
+----+------------+-----------+----------------+
| id | category | author_id | minimal_amount |
+----+------------+-----------+----------------+
| 1 | music | 1 | 1677 |
| 2 | music | 5 | 21573 |
| 3 | travelling | 2 | 4952 |
| 4 | travelling | 5 | 3135 |
| 5 | travelling | 2 | 8555 |
+----+------------+-----------+----------------+
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
| 1 | Marlene | Wagner |
| 2 | Lonnie | Goodwin |
| 3 | Sophie | Peters |
| 4 | Edwin | Paul |
| 5 | Hugh | Thornton |
| 6 | Dianne | Harris |
+----+------------+-----------+
目的是显示
尚未成立的项目数量(总计
数量
<
最小金额
)他们创造了。
我的SQL:
WITH projects AS
(
SELECT
first_name AS firstName,
last_name AS lastName,
project_id,
SUM(amount) AS amountSum,
minimal_amount
FROM
donation d
INNER JOIN
project p ON p.id = d.project_id
INNER JOIN
supporter s ON s.id = p.author_id
GROUP BY
FIRST, LAST, project_id
)
SELECT
firstName,
lastName,
COUNT(project_id)
FROM
projects
WHERE
amountSum < minimal_amount;
我有个错误:
列“first”不存在