非常感谢其他人,我现在得到这个查询。它的工作正常,但我只需要获取post_id(how_many)的最大值。似乎无法对此设置MAX(count(*))。所以我该如何更改此ID,以便每个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
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句