Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按最高和最低顺序排列_Mysql_Sql_Select_Sql Order By - Fatal编程技术网

Mysql 按最高和最低顺序排列

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有关,我想按ASC和DESC排序字段,请看示例:

我有表产品,我想订购的字段称为价格,因此,我知道我可以这样做:

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我又编辑了一遍,我认为更简单的方法是最后一种