gpt4 book ai didi

mySQL - 计算不同用户具有相同值的实例数量

转载 作者:行者123 更新时间:2023-11-29 11:33:53 25 4
gpt4 key购买 nike

我有一个表,ReadingList,它由几列组成。为了简单起见,我们称它们为:

  • reading_id
  • link_id_fk
  • user_id_fk

reading_id 只是一个 AI 键。 link_id_fk 可以存在多次(对于每个 user_id_fk)

我想要做的是找到最多用户存储的前 10 个 link_id_fk 值。

这是我的垃圾尝试(我只返回了 145,我不确定它从哪里得到这个数字 - 但它肯定不是我期待的数字:))

SELECT
*,
(SELECT COUNT(*)
FROM ReadingList
WHERE link_id_fk = ReadingList.link_id_fk) AS total_saves
FROM
ReadingList
WHERE
user_id_fk IN ('test123', 'test2') AND
link_id_fk > 0 AND deleted = 0;

所需的示例输出为:

link_id_fk   total_saves 
12 3
34 2
56 1
78 1

有人能给我指出正确的方向吗?

谢谢!

最佳答案

您可以在子查询中使用GROUP BY:

SELECT rl2.link_id_fk, rl2.nb_link
FROM (
SELECT link_id_fk, count(*) as nb_link
FROM ReadingList
WHERE
user_id_fk IN ('test123','test2')
AND link_id_fk > 0
AND deleted = 0
GROUP BY link_id_fk
) as rl2
ORDER BY rl2.nb_link DESC
LIMIT 10;

关于mySQL - 计算不同用户具有相同值的实例数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com