簡體   English   中英

獲取數組查詢mysql,php的最大值

[英]Get the highest value of array query mysql, php

非常感謝其他人,我現在得到這個查詢。 它的工作正常,但我只需要獲取post_id(how_many)的最大值。 似乎無法在其上設置MAX(count(*))。 所以我怎么能改變這個,使每個ID只得到最高的計數? 我只需要計數==最高的每個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次。 (多少)。 我只需要輸出中的每個ID 1x。 沒有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
         )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM