我正在学习如何使用 SQL CTE,我想比较两个查询以获得相同的答案(使用 postgresql),但我失败了,有人可以帮忙吗?
我创建了这个查询,并获得了每部电影标题的总数(Sakila 数据库):
SELECT COUNT(r.rental_id) rental_count,
f.title as "Film"
FROM film f
JOIN inventory i
ON f.film_id = i.film_id
JOIN rental r USING (inventory_id)
GROUP BY f.title
ORDER BY rental_count DESC;
Run Code Online (Sandbox Code Playgroud)
我想使用WITH(CTE)做同样的事情,为此我创建了以下代码:
WITH table1 AS (
SELECT f.film_id,
f.title as "Film"
FROM film f),
table2 AS (
SELECT r.inventory_id,
COUNT(r.rental_id) rental_count,
i.film_id,
i.inventory_id
FROM inventory i
JOIN rental r USING (inventory_id)
GROUP BY r.inventory_id, i.film_id, i.inventory_id)
SELECT *
FROM table1
JOIN table2
ON table1.film_id = table2.film_id;
Run Code Online (Sandbox Code Playgroud)
问题在于,结果没有显示每部电影标题的总数,而是单独显示每部电影标题。
我已经安装了 bable-cli 和 babel-preset-env,安装 nodemon 后,在 package.json 文件中使用以下内容时,npm start 无法加载我的应用程序:
"scripts": {
"start": "nodemon src/index.js --exec babel-node"
}
Run Code Online (Sandbox Code Playgroud)
显示以下错误:
[nodemon] 2.0.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `babel-node src/index.js`
'"node"' is not recognized as an internal or external command,
operable program or batch file.
[nodemon] app crashed - waiting for file changes before starting...
Run Code Online (Sandbox Code Playgroud)
但使用以下内容时一切正常:
"scripts": {
"start": "babel-node src/index.js"
}
Run Code Online (Sandbox Code Playgroud)
谢谢!