下表(产品)
id|name|price_type|price|
--|----|----------|-----|
1|book|MRP | 10|
2|book|SALE | 5|
3|pen |MRP | 10|在本表中,答案是1,因为只有一种产品“书”的售价是mrp的50%。
我试着执行以下查询,但是它出现了错误
select name from product group by name HAVING (count(product.name)>1 && product.price_type="MPR" && product.price_type="SALE");发布于 2020-04-09 13:40:58
为了(最终)解决您的问题,我做了以下工作
CREATE TABLE product
(
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR (15) NOT NULL,
price_type VARCHAR (10) NOT NULL,
price INTEGER NOT NULL
);填充表--我添加了额外的记录,因为,正如我再次发现的那样,使用1条记录(或者设置--即name = ' book ')进行测试--我添加了第1、2和3本书,因为我怀疑你是否只卖一本书和一支笔1和2。
INSERT INTO product (name, price_type, price)
VALUES
('book1', 'MRP', 10),
('book1', 'SALE', 5),
('pen1', 'MRP', 10),
('pen1', 'MRP', 5),
('book2', 'MRP', 14),
('book2', 'SALE', 7),
('pen', 'MRP', 16),
('book3', 'MRP', 30),
('book3', 'SALE', 15),
('pen', 'MRP', 8);查询
SELECT SUM(cnt) AS number_of_50
FROM
(
SELECT p1.name, COUNT(p1.name) AS cnt
FROM product p1
JOIN product p2
ON p1.name = p2.name
WHERE p1.price = 2 * p2.price
GROUP BY p1.name
) AS tab结果
number_of_50
5这里!
附注:除了有一个以上的记录,你可能会考虑使用小提琴作为你的表格和数据在未来的任何问题?此外,也请始终提供您的版本的MySQL,它可以使真正的不同的答案。这里有一些关于如何在我的个人资料上提问的文章--你可能想看看吗?欢迎来到论坛!
https://dba.stackexchange.com/questions/264677
复制相似问题