Mysql 按最高和最低顺序排列
我的问题与Select有关,我想按ASC和DESC排序字段,请看示例: 我有表产品,我想订购的字段称为价格,因此,我知道我可以这样做:Mysql 按最高和最低顺序排列,mysql,sql,select,sql-order-by,Mysql,Sql,Select,Sql Order By,我的问题与Select有关,我想按ASC和DESC排序字段,请看示例: 我有表产品,我想订购的字段称为价格,因此,我知道我可以这样做: SELECT Price FROM Products ORDER BY Price ASC. 但我希望看到最高的价格和最低的价格,因为我知道我能做到最高: SELECT Price FROM Products ORDER BY Price ASC limit 1; 那么,如何在1 select中选择最高值和最低值 我还想选择价值最高的产品和价值最低的产品
SELECT Price FROM Products ORDER BY Price ASC.
但我希望看到最高的价格和最低的价格,因为我知道我能做到最高:
SELECT Price FROM Products ORDER BY Price ASC limit 1;
那么,如何在1 select中选择最高值和最低值
我还想选择价值最高的产品和价值最低的产品的名称
关于。
按价格说明限额1从产品订单中选择价格代码>??按价格描述限制1从产品订单中选择价格代码>??如果要查看最高和最低价格,请使用以下查询:
select highest, lowest from
(
SELECT Price as highest FROM Products ORDER BY Price DESC limit 1;
SELECT Price as lowest FROM Products ORDER BY Price ASC limit 1;
) t
如果要查看最高和最低价格,请使用以下查询:
select highest, lowest from
(
SELECT Price as highest FROM Products ORDER BY Price DESC limit 1;
SELECT Price as lowest FROM Products ORDER BY Price ASC limit 1;
) t
使用简单的MIN
和MAX
聚合函数怎么样
SELECT MAX(Price) as MaxPrice, MIN(Price) as MinPrice FROM Products
使用简单的MIN
和MAX
聚合函数怎么样
SELECT MAX(Price) as MaxPrice, MIN(Price) as MinPrice FROM Products
最简单的方法是:
SELECT MIN(Price) LowestPrice, MAX(Price) HighestPrice FROM Products
但在某些情况下,您可能希望使用UNION
语句:
(SELECT 'Lowest' type, Price FROM Products ORDER BY Price ASC LIMIT 1)
UNION
(SELECT 'Highest' type, Price FROM Products ORDER BY Price DESC LIMIT 1)
最简单的方法是:
SELECT MIN(Price) LowestPrice, MAX(Price) HighestPrice FROM Products
但在某些情况下,您可能希望使用UNION
语句:
(SELECT 'Lowest' type, Price FROM Products ORDER BY Price ASC LIMIT 1)
UNION
(SELECT 'Highest' type, Price FROM Products ORDER BY Price DESC LIMIT 1)
这将显示最高价格或最低价格的所有产品:
SELECT Products.*
FROM Products
WHERE Price = (SELECT MAX(Price) FROM Products)
OR Price = (SELECT MIN(Price) FROM Products)
或者你想要这样的东西:
SELECT
Products.*,
m.mx As Highest,
m.mn As Lowest,
CASE WHEN Products.Price = m.mx THEN 'Max' ELSE 'Min' END As Is_Max_or_Min
FROM
Products INNER JOIN (
SELECT MAX(Price) mx, MIN(Price) mn
FROM Products
) m ON Products.Price IN (m.mx, m.mn)
SELECT
m.Lowest, p1.Name Name_Lowest,
m.Highest, p2.Name Name_Highest
FROM
(SELECT MIN(Price) Lowest, MAX(Price) Highest FROM Products) m
INNER JOIN Products p1 ON m.Lowest = p1.Price
INNER JOIN Products p2 ON m.Highest = p2.Price
LIMIT 1
如果您希望它们位于同一行,并且如果只有一种产品的最高价格和最低价格,您可以使用以下内容:
SELECT
Products.*,
m.mx As Highest,
m.mn As Lowest,
CASE WHEN Products.Price = m.mx THEN 'Max' ELSE 'Min' END As Is_Max_or_Min
FROM
Products INNER JOIN (
SELECT MAX(Price) mx, MIN(Price) mn
FROM Products
) m ON Products.Price IN (m.mx, m.mn)
SELECT
m.Lowest, p1.Name Name_Lowest,
m.Highest, p2.Name Name_Highest
FROM
(SELECT MIN(Price) Lowest, MAX(Price) Highest FROM Products) m
INNER JOIN Products p1 ON m.Lowest = p1.Price
INNER JOIN Products p2 ON m.Highest = p2.Price
LIMIT 1
或者,如果您只需要更简单的东西,您可以使用:
(SELECT 'Max' Is_Max_Or_Min, Products.*
FROM Products ORDER BY Price DESC LIMIT 1)
UNION ALL
(SELECT 'Min', Products.*
FROM Products ORDER BY Price LIMIT 1)
这将显示最高价格或最低价格的所有产品:
SELECT Products.*
FROM Products
WHERE Price = (SELECT MAX(Price) FROM Products)
OR Price = (SELECT MIN(Price) FROM Products)
或者你想要这样的东西:
SELECT
Products.*,
m.mx As Highest,
m.mn As Lowest,
CASE WHEN Products.Price = m.mx THEN 'Max' ELSE 'Min' END As Is_Max_or_Min
FROM
Products INNER JOIN (
SELECT MAX(Price) mx, MIN(Price) mn
FROM Products
) m ON Products.Price IN (m.mx, m.mn)
SELECT
m.Lowest, p1.Name Name_Lowest,
m.Highest, p2.Name Name_Highest
FROM
(SELECT MIN(Price) Lowest, MAX(Price) Highest FROM Products) m
INNER JOIN Products p1 ON m.Lowest = p1.Price
INNER JOIN Products p2 ON m.Highest = p2.Price
LIMIT 1
如果您希望它们位于同一行,并且如果只有一种产品的最高价格和最低价格,您可以使用以下内容:
SELECT
Products.*,
m.mx As Highest,
m.mn As Lowest,
CASE WHEN Products.Price = m.mx THEN 'Max' ELSE 'Min' END As Is_Max_or_Min
FROM
Products INNER JOIN (
SELECT MAX(Price) mx, MIN(Price) mn
FROM Products
) m ON Products.Price IN (m.mx, m.mn)
SELECT
m.Lowest, p1.Name Name_Lowest,
m.Highest, p2.Name Name_Highest
FROM
(SELECT MIN(Price) Lowest, MAX(Price) Highest FROM Products) m
INNER JOIN Products p1 ON m.Lowest = p1.Price
INNER JOIN Products p2 ON m.Highest = p2.Price
LIMIT 1
或者,如果您只需要更简单的东西,您可以使用:
(SELECT 'Max' Is_Max_Or_Min, Products.*
FROM Products ORDER BY Price DESC LIMIT 1)
UNION ALL
(SELECT 'Min', Products.*
FROM Products ORDER BY Price LIMIT 1)
你想要的是价格还是整排的价格?您将如何打破关系(多行共享最低/最高)?随便挑一个?返回所有同龄人?您只想要价格还是整行显示此价格?您将如何打破关系(多行共享最低/最高)?随便挑一个?返回所有同行?现在有点困难,除了价格之外,如果我想要最高和最低的产品名称?你觉得呢?现在有点困难,除了价格,如果我想知道产品的名称,最高和最低?你觉得怎么样?@Tennosuke我已经更新了我的上一个查询,我想这就是你要找的。。。如果可以的话,请告诉我:)这么难吗?“没有比这更简单的方法了吗?”Tennosuke我又编辑了一遍,我认为更简单的方法是最后一种one@Tennosuke我已经更新了我的上一个查询,我想这就是你想要的。。。如果可以的话,请告诉我:)这么难吗?“没有比这更简单的方法了吗?”Tennosuke我又编辑了一遍,我认为更简单的方法是最后一种