[英]How to get min and max values and corresponding ids in a single row
I have a table called product with 3 fields: 我有一个名为product的表格,其中包含3个字段:
prod_id price pname
1 100 abc
2 200 bbc
3 300 cbc
I want to get data of min and max in one row, ie: 我想在一行中获取最小值和最大值的数据,即:
minprice prod_id1 maxprice prod_id2
100 1 300 3
I tried with the following query but not able to find the exact result(if i have more data) 我尝试使用以下查询,但无法找到确切结果(如果我有更多数据)
SELECT s1.prod_id as prod_id1,
s2.prod_id as prod_id2,
min(s1.price) as minprice,
max(s2.price) as maxprice
FROM product s1
INNER JOIN product s2 ON s1.prod_id = s2.prod_id
You can do this with LIMIT
: 您可以使用LIMIT
来做到这一点:
SELECT
pmin.price AS minprice,
pmin.prod_id AS minprice_prodid,
pmax.price AS maxprice,
pmax.prod_id AS maxprice_prodid
FROM (
SELECT prod_id, price FROM product ORDER BY price LIMIT 1
) pmin
CROSS JOIN (
SELECT prod_id, price FROM product ORDER BY price DESC LIMIT 1
) pmax
You can try below - 您可以在下面尝试-
select X.id as prod_id1, minprice, Y.id as prod_id2, maxprice
from
(
select id, price as minprice from tablename
where price =(select min(price) from tablename b)
)X cross join
(
select id, price as maxprice from tablename
where price =(select max(price) from tablename c)
)Y
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.