获取数组查询的最高值mysql,php


Get the highest value of array query mysql, php

非常感谢这里的其他人,我现在得到了这个查询。它工作正常,但我只需要获得post_id(howmany)的最高值。似乎不可能在其上设置MAX(计数(*))。那么,我怎么能改变这一点,只获得每个id的最高计数呢?我只需要count==最高的每个id的值。我怎么能这么做?谢谢你的帮助。

$test = $wpdb->get_results('select 
    posts_id, value,count(*) as how_many
From wp_mrp_rating_item_entry_value
group by
    posts_id, value
order by count(*) desc');
echo '<pre>';
print_r($test);
echo '</pre>';

我需要像MAX((count(*))或MAX((count(how_many))那样的订单

我已经读过了,但我不知道如何将其用于我的目的使用COUNT、GROUP BY、ORDER BY MAX 过滤日志文件

这是我现在得到的输出的一个例子。所以数字1不应该出现,因为数字[0]已经被投票2次了。(how_many)。我只需要输出中的每个id 1x。no id不应该出现两次或两次以上。因为只需要最高计数。谢谢你,很抱歉你的英语不好。

Array
(
    [0] => stdClass Object
        (
            [posts_id] => 336
            [value] => 8
            [how_many] => 2
        )
    [1] => stdClass Object
        (
            [posts_id] => 336
            [value] => 7
            [how_many] => 1
        )
    [2] => stdClass Object
        (
            [posts_id] => 380
            [value] => 5
            [how_many] => 1
        )
    [3] => stdClass Object
        (
            [posts_id] => 378
            [value] => 7
            [how_many] => 1
        )
    [4] => stdClass Object
        (
            [posts_id] => 329
            [value] => 2
            [how_many] => 1
        )
    [5] => stdClass Object
        (
            [posts_id] => 327
            [value] => 3
            [how_many] => 1
        )
)

您可以根据与子查询的匹配来筛选HAVING子句中的结果组,以获得最大计数:

SELECT   posts_id, value, COUNT(*) AS how_many
FROM     wp_mrp_rating_item_entry_value t1
GROUP BY posts_id, value
HAVING   how_many = (
           SELECT   COUNT(*)
           FROM     wp_mrp_rating_item_entry_value t2
           WHERE    t2.posts_id = t1.posts_id
           GROUP BY t2.value
           ORDER BY COUNT(*) DESC
           LIMIT    1
         )