- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个表:categories
(id、name)、products
(id、category_id、name))和purchases
(id 、用户 ID、产品 ID)。 产品
属于类别
。用户可以购买许多产品
。我的目的是找到每个用户最流行的类别
。
但是,我需要使用查询的结果集作为子查询,因此不幸的是,由于 SQL Server 的限制(可怕的 ORDER BY 子句在 View 、内联函数、派生表和子查询中无效,除非还指定了 TOP。
错误)。
我的方法是创建每个用户每个类别
的所有购买
列表。然后,我有一个 MAX 函数来挑选最大购买量。我将该结果连接到原始查询(复制为子查询)以检索相关的 category_id
,最后获取类别名称。
我的查询有两个问题:
产品
,每个产品从 2 个类别
购买了 2 个),我最终会得到该用户的重复行。 fiddle :
http://sqlfiddle.com/#!6/8821b/5
如果有人能够帮助我找到一种方法来确保每个用户只返回一行,以及一种删除重复子查询的方法,我将不胜感激。
谢谢!
最佳答案
首先,感谢您提供 SQLFiddle 中的示例。它使帮助变得更加容易。
您可以使用 row_number 来更精确地获取“顶部”记录。在此示例中,我选择使用category_name作为计数之后的辅助排序标准。
SELECT user_id, category_name, category_count
FROM
(
SELECT
user_id, COUNT(1) as category_count, category_name,
ROW_NUMBER() OVER (
PARTITION BY user_id
ORDER BY COUNT(1) DESC, category_name ASC)
as ordinal_position
FROM
purchases p
JOIN products p2 ON p.product_id = p2.id
JOIN categories c ON p2.category_id = c.id
GROUP BY user_id, category_name
) a
WHERE ordinal_position = 1
ORDER BY category_count DESC
关于SQL Server : Find most popular category of products bought per user for use in subquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25040133/
Find most "popular" follower for a specific person. The more followers someone has, the more "popula
Find most "popular" follower for the persons. The more followers someone has, the more "popular" the
假设有一个标签表,如stackoverflow问题标签: TagID (bigint), QuestionID (bigint), Tag (varchar) 使用LINQ获取25个最常用标签的最有效
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试使用 Twitter 搜索 API 检索几条“流行”推文,但是当我使用“result_type =流行”尝试此操作时,我基本上最终得到一条“流行”推文。无论如何,我是否可以调整代码,以便获得
我有一个输入框,用户可以在提问时输入标签。它们以逗号分隔,如下所示: test1, test2, test3, test4 我的问题表结构是: 为了显示问题的标签,我只使用 explode(",",
我正在使用以下代码来生成某个 release_id 在表中出现了多少次的列表 所以 release_id 可以在我的表中出现多次。 SELECT release_id, COUNT( release_
我需要作业来获取数组中最“流行”的数字(出现频率最高的数字),如果有多个数字具有相同的显示次数,则随机获取一些数字。经过三个多小时的尝试,或者在网上搜索,这就是我得到的: public int get
好的,所以我正在构建一个网站,人们可以在其中发布新闻、评论、问题等。人们还可以对所有这些对象进行评分,最喜欢其中的大部分,分享它们等。该网站是 PHP+MySQL。我用 PHP 编写了一个脚本,它执行
这些是我的表格: 表:人物 id---name 1----John 2----Mike 3----George 表:访问 id---name---visitor 1----Paris--1 2----
我计划创建一个包含 x 千行数据的 mysql 5 (myISAM) 表。每行都会有一个计数字段,并且具有 20 个最高计数值的行将被检索很多,可能与每行更新一比一。通常不会检索不在这 20 行中的
ProductId | BrandId | Views 1 | 1 | 3 2 | 1 | 2 3 |
如何显示某个时期(例如过去一天)的“最受欢迎(文章|帖子|无论什么)”列表? (基本上复制了 Radioactivity Drupal 模块的功能。) 最佳答案 这是我会做的: 如果您还没有,请注册
基于v3 documentation我本以为是这样的: $ curl https://api.github.com/legacy/repos/search/python?language=Python
我想知道如何在我的应用程序的 SQLite 数据库中按受欢迎程度排序项目。 该应用程序连接到我的在线服务器并通过 JSON 自动同步信息。项目通常由用户在手机上保存,并添加到列表中,我想我可以将所有单
在 Google CSE 中,当我尝试获取 Popular Queries 时,我在 FireBug 控制台 中收到此错误: NetworkError: 400 Bad Request - http:
我有 2 个模型 Books 和 Categories 我想知道如何根据其中的书籍数量获得前 10 个类别。 我的模型是这样的 class Book(models.Model): """(Bo
考虑下表,其中包含字段 - id (int) 和 date_created (datetime): id date_created 1 2010-02-25 12:25:32
我正在用 Rails (3) 构建一个博客类型的网站,其中“作者”可以关注其他作者,并且为了找到拥有最多关注者的作者,我写了这个范围: scope :popular, all.sort { |a, b
我只是在做开源NLP工具的对比研究,对openNLP和coreNLP引擎的特性/服务有所了解。最近,我看到 openNLP 论坛没有任何贡献,而 coreNLP 论坛仍然活跃。所以我想了解stanfo
我是一名优秀的程序员,十分优秀!