【问题标题】:Way to execute this in one query在一个查询中执行此操作的方法
【发布时间】:2015-08-05 14:33:22
【问题描述】:

我有一张看起来像这样的表

Table: Recommendations
Recommended_ID    Item_ID     Recommended_Item_ID    User_id
1                   1                   3                1
2                   1                   3                6
3                   1                   2                7
4                   2                   5                1

我希望我的 SQL 查询在伪代码中实现类似这样的功能:

SELECT recommended_item_id as f, COUNT(recommended_id) WHERE recommended_item_id = f AND item_id = 1, FROM `Recommendations` WHERE item_id = 1

To hopefully return:
Recommended_Item_ID   Recommended_Number_of_Times
3                              2
2                              1

基本上,我试图获取为 item_idx 推荐的所有项目 ID,并返回他们被推荐的次数以及他们的 ID。我怎样才能让我的 SQL 查询来做到这一点?我尝试过 GROUP BY 和 HAVING,但问题是我不知道如何确保推荐的项目 ID 等于我告诉 SQL 搜索的初始推荐 ID。

【问题讨论】:

    标签: mysql


    【解决方案1】:
    select 
      Recommended_Item_ID,
      COUNT(recommended_id)
    from `Recommendations`
    where Item_ID = 1
    group by Recommended_Item_ID
    

    【讨论】:

    • 我回滚了我的编辑,因为它没有准确反映您的建议,但是 .. 如果您添加一个关于上述如何解决问题的简要说明,将会对其他人有所帮助 :)跨度>
    【解决方案2】:

    查看group bywhere and group by

    尝试分组

    select Recommended_Item_ID, count(*) as Recommended_Number_of_Times
    from Recommendations
    where Item_ID = X
    group by Recommended_Item_ID
    order by count(*) desc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多