gpt4 book ai didi

mysql - 如何创建一个查询来计算两列中的值一起出现的次数?

转载 作者:行者123 更新时间:2023-11-29 15:55:51 26 4
gpt4 key购买 nike

我有一个包含用户 ID、视频 ID 和状态列的表。每次用户观看视频时,它都会将其添加到该列中。我想计算用户观看每个视频的次数,然后显示前 10 个视频,并将显示为用户 ID、视频 ID、X 观看次数

我尝试查找如何执行此操作,但找不到好的答案。

我想计算用户观看每个视频的次数,然后显示前 10 个视频,并显示为用户 ID、视频 ID、X 观看次数

SELECT streams.Subscriber_ID as User, streams.Video_ID, count(streams) as Views
FROM steams
JOIN streams.Subscriber_ID
ORDER BY count(streams) DESC LIMIT 20;

最佳答案

您必须对所需字段进行GROUP BY才能获得聚合计数。

例如:

架构 (MySQL v5.7)

CREATE TABLE test
(
user_id INT,
video_id INT
);

INSERT INTO test VALUES (1, 1), (1, 1), (1, 1), (1, 2), (2, 1), (2, 2), (3, 2), (3, 2), (3, 2), (3, 2);
<小时/>

查询#1

SELECT t.user_id,
t.video_id,
COUNT(*) AS watch
FROM test t
GROUP BY user_id, video_id
ORDER BY watch DESC;

输出

| user_id | video_id | watch |
| ------- | -------- | ----- |
| 3 | 2 | 4 |
| 1 | 1 | 3 |
| 1 | 2 | 1 |
| 2 | 1 | 1 |
| 2 | 2 | 1 |
<小时/>

View on DB Fiddle

关于mysql - 如何创建一个查询来计算两列中的值一起出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56463809/

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