我发现了一些类似的问题,有很好的答案,但我想不出如何将它应用到我的具体案例中。我有一个网站,用户可以评分那里最喜欢的帖子,从1-6。每个数字都是不同的类别。
现在我需要知道每一个职位最频繁的投票结果。因此,我需要计算每一个帖子id,比每个帖子id最常见的值还要多。
在此之后,我想更新另一个表中的每个结果。(不知道如何解决这个问题,我现在还不太擅长Mysql )。
这是两个专栏,我需要知道每个帖子在post_id中的频率,以及每个帖子中最频繁的投票号码是多少。
只是我的表的一个例子(value =表决)
value | post_id
---------------
3 | 12
1 | 6
4 | 13
2 | 5
6 | 12
5 | 6 我需要这样的输出来知道哪个帖子主要是哪个类别的投票。
post | most voted in this category
---------------
1 | 3
2 | 5
3 | 6
4 | 1
5 | 4
6 | 6 我需要这张桌子上的每一个帖子。我需要更新另一张桌子上的每一篇文章。我想我得做个循环。但我已经坚持了第一部分。
我只有这个。第一部分。
<?php global $wpdb;
$test = $wpdb->get_results('SELECT posts_id, value, COUNT(posts_id) AS ActionCount
FROM rating_item_entry_value
GROUP BY posts_id
ORDER BY ActionCount DESC');
echo '<pre>';
print_r($test);
echo '</pre>';这是我得到的输出
Array
(
[0] => stdClass Object
(
[posts_id] => 0
[value] => 5
[ActionCount] => 7
)
[1] => stdClass Object
(
[posts_id] => 221
[value] => 3
[ActionCount] => 3
)
[2] => stdClass Object
(
[posts_id] => 197
[value] => 5
[ActionCount] => 2
)
[3] => stdClass Object
(
[posts_id] => 164
[value] => 3
[ActionCount] => 1
)
)举个例子。
我不知道如何把这件事做得更好,我试了很多次,但都想不出来。有没有人有一个好的解决方案,如何获得最频繁的数字为每一个id?(也许如何确保变量中的结果安全,以更新循环中另一个表中的每个帖子?)非常感谢你的帮助。问候
发布于 2015-02-07 22:25:01
最常见的方法是计数、聚合和按频率分组。您可以将此映射到您的问题:
select
x.amount,
count(*) as times -- I forgot that row
from
X x
group by
x.amount
order by
count(*) DESC//编辑对您的意思是
select
post_id,
value,
count(*)
from
your_table
group by
post_id,
value
order by
count(*) deschttps://stackoverflow.com/questions/28388105
复制相似问题