SQL 查找最受欢迎的类别

2023-11-30

我的数据库(MySQL)中有 3 个表。

categories (name:string)
items (name:string, category_id:int)
votes (value:int, item_id:int, created_at:datetime)

所以一个类别有很多项目,一个项目有很多票。

我想编写一个查询来获取最受欢迎的类别,这意味着获取上周获得最多票数(无论是上还是下)的项目的类别。

我开始尝试一些更简单的东西,只是获得流行的物品,但我现在只是猜测,但它不起作用。

SELECT *, COUNT(votes.item_id) AS score
FROM items
JOIN votes USING(item_id)
WHERE votes.created_at > #{1.week.ago}
ORDER BY COUNT(votes.item_id) DESC LIMIT 5;

我真的不知道我在做什么,有什么想法吗?另外,如果有人知道有关进行此类更高级选择的好文章,我很乐意阅读。 MySQL 文档有点神秘,我不太理解“AS”和“JOINS”。


尝试这个。将 group by 与类别名称一起使用。我已经注释掉了您指定的created at子句,如果您想使用它,可以取消注释它。

 SELECT c.name, SUM(ABS(v.item_id)) 
 FROM categories c,items i, votes v
 WHERE c.name = i.name
    AND i.item_id=v.item_id
    --AND v.created_at > #{1.week.ago}
 GROUP BY c.name 
 ORDER BY SUM(ABS(v.item_id)) DESC LIMIT 5;

你会注意到我没有使用 JOIN 关键字,而是仅使用 WHERE 子句过滤查询结果,这可能更容易理解。如果您想了解有关 JOIN 的更多信息,这是一个教程.

这里还有一个关于 SQL 别名的教程(AS 条款)。事实上,这个网站上还有很多关于不依赖于平台的不同 SQL 主题的教程。

edit:根据评论修复,添加了abs函数,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 查找最受欢迎的类别 的相关文章

  • 在 Postgres 中的数组字段上应用聚合函数?

    是否可以对整数 字段 或其他数字数组 中的所有值应用聚合 如 avg stddev CREATE TABLE widget measurement integer insert into widget measurement values
  • 在 PHP 中将十进制/双精度/浮点值与 PDO 绑定的最佳方法是什么?

    看来类常量只涵盖PDO PARAM BOOL PDO PARAM INT and PDO PARAM STR用于绑定 您只是将十进制 浮点 双精度值绑定为字符串还是有更好的方法来处理它们 MySQLi 允许使用 d 类型表示 double
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 外键引用多个表

    我有4张桌子 A ida name B ida B specific stuff C ida C specific stuff D ida D specific stuff 我希望另一个表 E 可以仅引用 B 或 C 而不是 D 我可以在其
  • 累计非重复计数

    我正在查询每天获取 uid 的累计不同计数 示例 假设有 2 个 uid 100 200 出现在日期 2016 11 01 并且它们也在第二天出现 新的 uid 300 100 200 300 出现在 2016 11 02 此时我希望商店累
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • 不是 select 中带有 MAX 的单组组函数

    Select sg gameno Max sg Year sg end sg hostcity country olympic name from Summergames s Country co where s country isoco
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • 这是过滤数据并防止 SQL 注入和其他攻击的安全方法吗?

    我创建了两个简单的函数来在插入数据进入 mysql 查询之前对其进行过滤 对于表单字段 我还使用正则表达式来单独检查每个字段 Form filter function filter var HTML is not allowed var s
  • 如何在 MacOS 上卸载 Mysql Shell

    我错误地安装了 MySql Shellhttps dev mysql com doc mysql shell 8 0 en https dev mysql com doc mysql shell 8 0 en 在我的 MacBook Pro
  • ActiveRecord 嵌套 SELECT——我可以在没有手动 SQL 的情况下完成它吗?

    我有一张桌子 上面有 除其他外 一个名字和一个等级 我想返回所有唯一名称的集合 但对于返回的每个名称 我想选择排名最高的行 这很简单 有两个嵌套的 SELECT 语句 SELECT FROM SELECT FROM foo ORDER BY
  • MySql 从另一个表中减去一个表

    我有两个表 A 包含所有数据 表 B 从 A 中随机选择 25 的数据创建 所以 A 和 B 具有完全相同的列 也没有独特的列 我想做的是从 A 中减去 B 有什么想法吗 查看所有行A除了那些在B SELECT FROM A WHERE f
  • 部署 dacpac 所需的权限

    我正在尝试使用 sqlpackage exe 在租户上部署 dacpac 目前 我正在向将部署此功能的帐户授予 SysAdmin 或 db owner 权限 并且它工作正常 但在生产中 如果目标租户数据库属于其他应用程序 我可能无法获得这些
  • SQLite 条件 ORDER BY 中的 DESC

    我需要选择按以下逻辑排序的记录 但是当 DESC 处于条件中时 SQLite 会引发错误 ORDER BY CASE WHEN parentGUID IS NULL THEN datePosted DESC ELSE datePosted
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • MySQL 和 MariaDB 数据库有什么区别?

    我已经使用 XAMPP 很长时间了 很惊讶 XAMPP 已经从 MySQL 切换到了 MariaDB https www apachefriends org index html https www apachefriends org in
  • 如何告诉node.js mysql没有在默认端口上运行?

    我遇到了与此人类似的问题 连接 ECONNREFUSED 节点 js sql https stackoverflow com questions 8825342 connect econnrefused node js sql 我正在尝试将
  • 计算树中值的总和(递归查询)

    我在表员工 id name parentid 中有树结构 并且该表可以嵌套 employees 与另一个具有列 id employeeid quantity 的 Sales 表是一对多关系 每个员工都有销售数量 我想计算每个员工以及儿童员工
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T

随机推荐

  • 不可变对象的名称如何重新绑定到增强赋值的结果?

    不可变对象的名称如何重新绑定到增强赋值的结果 对于可变对象 例如 如果x 1 2 3 并且 y 4 5 那么当我们执行 x y 时 它的执行方式为x iadd y 它修改了x in place并做了名字x再次重新绑定到它 它是如何工作的x是
  • 比“尝试”和“例外”更快的方法? - Python

    我经常将代码写成如下 try self title item title content string except AttributeError e self title None 有没有更快的方法来处理这个问题 一行 您遇到了哪些例外情
  • 在jspdf中添加自定义字体

    我想在 jsPDF 中使用自定义字体 例如 Comic Sans MS 或 Calibri 字体 我发现了类似的问题here 但我的不工作 我已经添加了最新的jspdf 我的代码如下 var doc new jsPDF p mm a4 do
  • swt表改变选择项颜色

    我正在使用一个标准的 swt 表 您可能知道 默认情况下 选择一个项目时颜色为蓝色 Windows 标准 当选择处于非活动状态时 它会变成浅灰色 我想覆盖这两种颜色 我在整个网络上进行了搜索 但只能找到一些非常旧的代码 这些代码似乎不再适用
  • PrototypeJS:如何选择动态创建的元素?

    该网站使用 Prototype JS 库 页面加载后 它立即执行 Ajax 请求 该请求会拉出并显示页面的更多元素 我需要能够选择那些动态创建的元素并将它们隐藏 hide method 我尝试使用选择并隐藏它们document observ
  • 从 XML 反序列化为列表对象

    我正在执行将 XML 文件转换为列表对象的程序 我已成功完成从 List 到 XML 的序列化 但是在进行反序列化时遇到问题 请任何人告诉我我在这段代码中做错了什么 这是我的 XML 代码
  • 设计可以标记多个数据库表的标记系统

    我希望允许用户标记项目 以便他们可以使用标签搜索它们 干净地实现这一目标的最佳方法是什么 到目前为止 我提出的解决方案仅涉及向我当前的数据库系统添加两个额外的表
  • 绘制 SEM 模型中与 R 中观察到的变量的交互效应

    我正在估计一个已观察到变量的 SEM 模型 我正在使用 SEM 来使用 FIML 处理缺失数据 我的模型有一个交互项来测试适度性 这是一个说明问题的玩具示例 library lavaan library car library dplyr
  • Cakephp生成xml错误-空格

    我正在尝试在 CakePHP 中生成动态 xml 文档以输出到浏览器 这是我的控制器代码 Configure write debug 0 this gt layout null header Content type text xml ec
  • 使用 itextpdf 时,横向和纵向 PDF 的页面大小始终相同

    我有一个 PDFReader 其中包含一些横向模式的页面和其他纵向模式的页面 我需要区分它们以进行一些处理 但是 如果我调用 getOrientation 或 getPageSize 则该值始终相同 页面大小为 595 方向为 0 为什么横
  • CSS 中的装饰艺术风格边框

    我希望使用纯 CSS 来实现这种边框效果 我的偏好是在不添加额外的 div 元素的情况下实现它 任何建议 将不胜感激 编辑 固定图像描述 你可以像下面这样做 box width 150px height 200px border 15px
  • Android:从网页获取 HTML 作为字符串,HttpClient 不起作用

    我正在编写一个使用 HttpClient 连接到网页的应用程序 目的是能够将网页的一些 HTML 复制到字符串中 我尝试使用 HttpClient 连接来完成此任务 这是我使用的代码 public void getText final Te
  • 在不同 DPI 下使用 GetWindowRect 的坐标误差

    我想捕获 MFC 程序中组件的坐标 现在我可以通过使用完美地完成这个GetWindowRect 但是 当我将 Windows dpi 设置为 150 120 dpi 时 我得到的坐标不同GetWindowRect 因此 我研究了一些将新坐标
  • Ruby OpenSSL 嵌套 asn1 错误

    我已经尝试过针对此处发布的几个问题的建议 但无济于事 我有以下文件 注意 我即时生成了这些文件 它们是一次性密钥 证书文件 BEGIN CERTIFICATE MIIE jCCA KgAwIBAgIJAMLMeL HH75vMA0GCSqG
  • 将 smarty 数组转换为 javascript 数组

    我有一个聪明的数组 promoFormData Smarty Variable Object 3 gt value Array 1 deliveryDates gt Array 3 0 gt Array 2 startDate gt 201
  • 画布 toDataUrl 的跨源访问失败

    我想创建一个小页面 人们可以在其中创建万花筒 我使用可用的脚本并添加了一些图像浏览和保存功能 现在 我在将生成的画布数据保存为图像时遇到了一个奇怪的问题 火狐控制台说 SecurityError 操作不安全 调用失败 Canvas2Imag
  • 在服务类中显示 ProgressDialog

    我正在使用服务通过 AsyncTask 连接到网络 我想显示一个 ProgressDialog 直到应用程序连接到网络 但我该怎么做呢 我的服务如下所示 package de bertrandt bertrandtknx import tu
  • Paypal 表单破坏了我的 ASP.NET webforms 布局 -> 如何解决?

    I am a student who is doing up a simple website in asp net My problem is I wish to integrate Paypal on one of the pages
  • 用于密码验证的正则表达式 Java

    我正在创建一个用于密码验证的正则表达式 以在 Java 应用程序中用作配置参数 正则表达式是 8 0 9 a z A Z 密码策略是 至少 8 个字符 至少包含一位数字 至少包含 1 个下位字母字符和 1 个上位字母字符 一组特殊字符中至少
  • SQL 查找最受欢迎的类别

    我的数据库 MySQL 中有 3 个表 categories name string items name string category id int votes value int item id int created at date