表 collect_spu

id代表用户,spu_id  代表用户浏览的产品

题目则是:向有过历史上完全一样的产品浏览记录的两个用户,推送(两个用户之间)新的浏览记录。

001    A F  H

004   A C F H   所以向001 推送C产品

应用场景(抖音 视频 等 点赞 推送视频)

1. 我们计算出 推送者 和 被推送者 之间存在相互爱好的计数

select a.id,b.id as new_id,count(*) as cnt 
from [dbo].[collect_spu] a --被推送者
inner join   [dbo].[collect_spu] b on a.id <>b.id  and a.spu_id =b.spu_id  --推送者
group by a.id,b.id

2 我们计算出  被推送者总共浏览了多少产品

select *,count(spu_id)over(partition by a.id)  as cnt1
from [dbo].[collect_spu] a --被推送者

3.筛选出满足  被推送者与推送者产生相同爱好的计数=被推送这本身的爱好数

(如果小于 那么就是  两人之间爱好产生差异)

select *from
 (
select a.id,b.id as new_id,count(*) as cnt 
from [dbo].[collect_spu] a --被推送者
inner join   [dbo].[collect_spu] b on a.id <>b.id  and a.spu_id =b.spu_id  --推送者
group by a.id,b.id
) a
left join
(
select *,count(spu_id)over(partition by a.id)  as cnt1
from [dbo].[collect_spu] a --被推送者
) b on a.id =b.id and a.cnt=b.cnt1
where b.id is not null

4 new_id则是推送人的id ,cnt是推送人的浏览计数   spu_id  是  id(被推送人)浏览物品  我们关联出推送人新的浏览产品。(推送人浏览的产品《》被推送人浏览的产品)

select a.id,b.cnt1,a.new_id,c.spu_id from 
 (
select a.id,b.id as new_id,count(*) as cnt 
from [dbo].[collect_spu] a --被推送者
inner join   [dbo].[collect_spu] b on a.id <>b.id  and a.spu_id =b.spu_id  --推送者
group by a.id,b.id
) a
left join
(
select *,count(spu_id)over(partition by a.id)  as cnt1
from [dbo].[collect_spu] a --被推送者
) b on a.id =b.id and a.cnt=b.cnt1
left join [dbo].[collect_spu] c on   a.new_id=c.id  and b.spu_id <> c.spu_id
where b.id is not null 
and c.id is not null 
group by a.id,a.new_id,c.spu_id,b.cnt1
having count(c.id)>b.cnt1-1

5.数据完成

Sql 经典题目(视频相同爱好推送)相关推荐

  1. 腾讯视频怎样关闭推送迷你页面

    腾讯视频是一款难得的好软件,本文给大家分享"腾讯视频怎样关闭推送迷你页面",相信大家看完后在使用方面更加得心应手.腾讯视频客户端为您推荐更多精选热门视频,通过多条件筛选快速定位匹配 ...

  2. C#FFmpeg视频采集与推送RTMP服务器代码思路整理

    C#视频采集与推送RTMP服务器代码思路整理:在看过FFmpeg后是否认为写C#的视频流采集和推送还是一头雾水啊?深有此感.领导是C#的高手,说可以通过C或C++的代码直接复制粘贴到C#工程然后进行适 ...

  3. 使用dwr3.0实现服务端向浏览器做消息推送,做滚动评论或弹幕效果,而且根据视频id做推送消息拦截功能

    最近项目要实现视频播放时做弹幕和评论滚动,使用flash做sockt编程不会,就想到使用服务器消息推送做,翻找资料发现使用html5的websocket可以实现,但是ie8是不支持websocket的 ...

  4. sql server 数据库向java接口推送数据

    因为以前从未用数据库向java接口推送数据,所以为了实现这个demo我是一步一个脚印的踩坑啊!!! 此文章的作用以及应用场景:利用数据库主动推送数据,实现前端页面数据实时更新,替换ajax轮询机制.推 ...

  5. Android视频采集实时推送RTP/RTSP/RTMP

    因为在工作中,接触到了视频相关的开发工作:同时,大多数android处理音视频多半都是有C++工程师提供处理库,所以,在这里记录一下我自己在工作中遇到的问题. 主要功能: 采集Android摄像头数据 ...

  6. SQL(之一)-SQL经典题目

    说明:以下SQL练习题(主要针对DBMS为ORACLE),题目来自网络,本人整理编辑完成,难度分为1-5星. 涉及的4个表的表间关系: --0-查询每个学生.最高学科的成绩.及最高成绩的所在学科在班级 ...

  7. 发布视频没流量?Tiktok视频流量怎么推送

    发布视频没流量?Tiktok视频流量大揭秘 大家好,我是项柚.一个专注于讨论TikTok玩法的跨境电商自媒体人,每天不断输出干货给需要的朋友. 这一期和大家分享一下我总结的一些打造爆款视频的套路.希望 ...

  8. 手机爱奇艺/腾讯视频桌面像推送到电视一样推送到电脑

    https://www.bilibili.com/s/video/BV1WJ41197KD

  9. 视频号算法推荐机制,视频号好友点赞立即推送吗?:国仁网络资讯

    视频号已经越来越多的人进入其中研究探讨了,探讨最多的就是视频号数据算法的问题,第一批吃螃蟹的人多少尝到了一些甜头.如今,明星.网红.媒体.公众号和部分已经在其他平台有内容影响力的个人,成了视频号第一批 ...

最新文章

  1. Django博客系统(写博客页面展示分类)
  2. 显卡暴涨,等等党输了,这我万万没想到啊
  3. .net 学习 报错 Invalid temp directory in chart handler configuration [c:\TempImageFiles\]
  4. Mongodb千万级数据在python下的综合压力测试及应用探讨
  5. 复制一个文件夹中的所有文件和文件夹的java程序实现
  6. 你竟然没用 Nuget 构建项目?
  7. REVERSE-PRACTICE-BUUCTF-23
  8. 小米9私密相册怎么找_“拼藏搜”,手机相册还能这么玩
  9. java消费rabbitMQ队列消息
  10. MySQL 官网下载各版本连接驱动
  11. camtasia studio2022新版本高清录屏编辑无水印
  12. 滴滴Java实习面经
  13. pano2vr怎么制作漫游_Pano2VR如何制作全景图?全景图如何添加热点?
  14. SWI-Prolog的下载与使用
  15. mdf文件和ldf文件ndf是什么,怎么用?如何给SQL server添加数据文件?分离和附加数据库的操作
  16. Arduino Leonardo教程:如何回车,特殊按键定义,DIY超便宜的键盘主控
  17. 数字化汗字中仲字如化数字化_如何将旧的电影照片数字化
  18. 为什么要努力读书学习,一位清华妈妈总结了7条,太到位了
  19. PS制作钢铁质感文字
  20. 校招群面及专业面技巧总结(适用产品等非技术岗)

热门文章

  1. Redis Desktop Manager连不上虚拟机redis服务完美解决
  2. TCP/IP OSI七层模型
  3. [Python]在代码中怎样发送Ctrl+C或其他ASCII编码的控制字符
  4. ubuntu18.04 输入法的配置
  5. Chrome浏览器及Chrome内核浏览器下载时使用p2p提速
  6. 软考A计划-试题模拟含答案解析-卷十
  7. 13个免费的FLASH资源网站
  8. Java程序如何写判断闰年_用Java程序判断是否是闰年的简单实例
  9. 揭开中国人使用计算机互联网的序幕的人,_____发出了中国第一封电子邮件,从此揭开了中国人使用Internet的.._简答题试题答案...
  10. 使用EA绘制UML状态机图