Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 - Fatal编程技术网

Mysql 从结果中获得最大值

Mysql 从结果中获得最大值,mysql,sql,Mysql,Sql,我有一张桌子 t1 -------------- id date val_1 val_2 我需要得到10个最新的结果,并将它们从较早的日期排序到最晚的日期,所以我会按照 从中选择* 挑选* 从myTable 其中project=$project\u id 按日期说明订购 按id ASC排序的结果限制为10 现在,我需要得到val_1的最大值。我正在尝试构建一个条形图,希望得到最大值,因为我需要将其除以最大高度,并使用该结果作为乘数,将val_1和val_2叠加在一起,而不超出图形的高度 试试看

我有一张桌子

t1
--------------
id
date
val_1
val_2
我需要得到10个最新的结果,并将它们从较早的日期排序到最晚的日期,所以我会按照

从中选择* 挑选* 从myTable 其中project=$project\u id 按日期说明订购 按id ASC排序的结果限制为10 现在,我需要得到val_1的最大值。我正在尝试构建一个条形图,希望得到最大值,因为我需要将其除以最大高度,并使用该结果作为乘数,将val_1和val_2叠加在一起,而不超出图形的高度

试试看

SELECT val_1 as max_val FROM myTable ORDER by val_1 DESC LIMIT 1
你也可以试试MAX like

你可以试试这个:

SELECT *, MAX(val_1) FROM (
    SELECT *
    FROM myTable
    WHERE project = $project_id
    ORDER BY date DESC
    LIMIT 10) AS results ORDER by id ASC
见:

“最高的项目编号是多少?”

您也可以在查询结果上自由使用MAX:

SELECT MAX(val_1) FROM (SELECT …) t;
做一些类似的事情

SELECT MAX(val_1) FROM(SELECT *
        FROM myTable
        WHERE project = $project_id
        ORDER BY date DESC
        LIMIT 10) AS results ORDER by id ASC

你想要这样的东西

  SELECT *, 
         t2.biggest_value,
         ((t1.val_1/t2.biggest_value)*100) AS `%`
    FROM myTable t1
    JOIN (SELECT MAX(val_1) AS biggest_value,
                 project
            FROM myTable
         ) AS t2
      ON t2.project = t1.project
   WHERE t1.project = $project_id
ORDER BY date DESC, id ASC 
   LIMIT 10
联接在val_1上获得最大值,外部查询将收集所有数据,并根据最大值计算每个val_1的百分比

此查询将为您提供其他列的最大值:-


注意:-此查询集合产品表中的id和最大价格。即,它将最大价格与每个记录集相关联。

看起来您可以使用单个查询:从myTable中选择*,其中project=$project\u id ORDER BY date DESC,id ASC LIMIT 10您可以使用max获得val\u 1Wait的最大值,我的查询太复杂了?让我试试你的建议。如何使用MAX?谢谢。我需要检索结果集中的最大值。我需要将所有结果输出到一个数组中,然后操纵数组吗?我需要检索到的结果集中的最大值。然后用子查询替换shop。我实际上将复杂查询更改为@Prix:SELECT*FROM myTable,其中project=$project\u id ORDER by date DESC,id ASC限制10我仍然需要按日期排序的所有这些结果。此外,我需要找出val_1的最大值,从这些结果中。嗯,我认为演示站点已经关闭。。。我得到:Railo 3.3.4.003错误Railo.runtime.net.mail.MailException,但让我来看看这个查询。谢谢。@santa好了,现场演示已经不在我的掌握之中,你必须等待所有者来修复它,但是既然你手头有它,请让我知道它是否适合你。好的,网站似乎已经上线了。我对数据集进行了调整,使其更接近我的实际数据:仍有几个问题需要解决。记录需要按日期从早到晚重新排列。目前情况正好相反,最大值似乎是整个集合中最大的,而不是我检索到的那个。在当前示例中,它应该是111。谢谢。@santa,这是因为日期需要在订单上排在第一位,而不是像您那样的id,您还可以将WHERE project=234添加到join查询中,请参见此处
SELECT MAX(val_1) FROM(SELECT *
        FROM myTable
        WHERE project = $project_id
        ORDER BY date DESC
        LIMIT 10) AS results ORDER by id ASC
  SELECT *, 
         t2.biggest_value,
         ((t1.val_1/t2.biggest_value)*100) AS `%`
    FROM myTable t1
    JOIN (SELECT MAX(val_1) AS biggest_value,
                 project
            FROM myTable
         ) AS t2
      ON t2.project = t1.project
   WHERE t1.project = $project_id
ORDER BY date DESC, id ASC 
   LIMIT 10
SELECT id,(select MAX(`price`) FROM `products` ) as FINAL from products