所以,我正在尝试 8weeksqlchallenge,我通常使用 MySQL,那里的错误代码非常干净,但 dbfiddle.com 上的错误代码则不是那么多
这是我的架构
CREATE SCHEMA dannys_diner;
SET search_path = dannys_diner;
CREATE TABLE sales (
"customer_id" VARCHAR(1),
"order_date" DATE,
"product_id" INTEGER
);
INSERT INTO sales
("customer_id", "order_date", "product_id")
VALUES
('A', '2021-01-01', '1'),
('A', '2021-01-01', '2'),
('A', '2021-01-07', '2'),
('A', '2021-01-10', '3'),
('A', '2021-01-11', '3'),
('A', '2021-01-11', '3'),
('B', '2021-01-01', '2'),
('B', '2021-01-02', '2'),
('B', '2021-01-04', '1'),
('B', '2021-01-11', '1'),
('B', '2021-01-16', '3'),
('B', '2021-02-01', '3'),
('C', '2021-01-01', '3'),
('C', '2021-01-01', '3'),
('C', '2021-01-07', '3');
CREATE TABLE menu (
"product_id" INTEGER,
"product_name" VARCHAR(5),
"price" INTEGER
);
INSERT INTO menu
("product_id", "product_name", "price")
VALUES
('1', 'sushi', '10'),
('2', 'curry', '15'),
('3', 'ramen', '12');
CREATE TABLE members (
"customer_id" VARCHAR(1),
"join_date" DATE
);
INSERT INTO members
("customer_id", "join_date")
VALUES
('A', '2021-01-07'),
('B', '2021-01-09');
并且询问是找到每个客户购买的第一个产品,所以我想到使用以下代码进行子查询,但它返回查询错误:错误:“SELECT”处或附近的语法错误
SELECT sales.customer_id, sales.product_id
FROM dannys_diner.sales WHERE sales.order_date =
SELECT MIN(sales.order_date)
FROM dannys_diner.sales
GROUP BY sales.customer_id;
子查询周围需要
(
和 )
—— 就像这样
SELECT sales.customer_id, sales.product_id
FROM dannys_diner.sales
WHERE sales.order_date = (
SELECT MIN(sales.order_date)
FROM dannys_diner.sales
GROUP BY sales.customer_id
);