美团/得物sql面试题

article/2025/10/3 15:39:32

 解题思路:

1.找出uid不同的但是买过pro_id相同的商品的用户 [自连接]

 selecta.uid,b.pro_id fromtb_order ajoin tb_order bon a.pro_id = b.pro_id where a.uid <> b.uid 	 -- 找出uid不同的但是pro_id相同的商品

2.对uid和pro_id进行分组

selecta.uid,a.pro_id 
fromtb_order a
join tb_order b
on a.pro_id = b.pro_id where a.uid <> b.uid 	 -- 找出uid不同的但是买过pro_id相同的商品的用户
group by uid,pro_id 

3.在对uid进行分组得到买过两件及以上的用户

select 
uid  
from(select uid  from(selecta.uid,a.pro_id fromtb_order ajoin tb_order bon a.pro_id = b.pro_id where a.uid <> b.uid 	 -- 找出uid不同的但是买过pro_id相同的商品的用户group by uid,pro_id ) tb0
group by uid   -- 得到买商品相同数为2件及以上的用户   
having count(1) >= 2

 4.再进行自连接得到符合条件的人和商品

selecttb1.uid,tb1.pro_id
fromtb_order tb1
join(select uid  from(select uid  from(selecta.uid,a.pro_id fromtb_order ajoin tb_order bon a.pro_id = b.pro_id where a.uid <> b.uid 	 -- 找出uid不同的但是买过pro_id相同的商品的用户group by uid,pro_id ) tb0group by uid   -- 得到买商品相同数为2件及以上的用户   having count(1) >= 2) tb2
on tb1.uid = tb2.uid

 5.在对pro_id进行分区获取商品数是1的商品[使用自查询即可]

最终sql:

selecttb3.uid,tb3.pro_id
from(selecttb1.uid,tb1.pro_idfromtb_order tb1join(select uid  from(select uid  from(selecta.uid,a.pro_id fromtb_order ajoin tb_order bon a.pro_id = b.pro_id where a.uid <> b.uid 	 -- 找出uid不同的但是买过pro_id相同的商品的用户group by uid,pro_id ) tb0group by uid   -- 得到买商品相同数为2件及以上的用户   having count(1) >= 2) tb2on tb1.uid = tb2.uid) tb3 
where pro_id in (select pro_id from  tb_order group by pro_id having count(1) = 1)


http://chatgpt.dhexx.cn/article/hDXWioea.shtml

相关文章

Spark SQL面试题

1.RDD DataFrame DataSet的区别 &#xff08;1&#xff09; 三者之间的关系 DataFrame是特殊的RDD(它相当于RDDschema&#xff0c;即RDD表信息)&#xff0c;可以将他看成数据库中的一张数据表&#xff0c;但是只知道这个"表"中的各个字段&#xff0c;不知道各个字段…

SQL常见面试题

SQL常见面试题关系型数据库&#xff08;SQL&#xff09;非关系型数据库&#xff08;NoSQL&#xff09;数据库三大范式主键与外键CHAR与VRCHAR数据类型临时表数据库函数、触发过程与存储器 SQL语句SQL语言分类DROP、TRUNCATE、DELETE的区别sum、count(\*)、count(1)、count(colu…

常见的SQL面试题:经典50例

SQL基础知识整理 select 查询结果&#xff0c;如: [学号,平均成绩&#xff1a;组函数avg(成绩)] from 从哪张表中查找数据&#xff0c;如:[涉及到成绩&#xff1a;成绩表score] where 查询条件&#xff0c;如:[b.课程号0003 and b.成绩>80] group by 分组&#xff0c;如:…

5个必考的大厂SQL面试题

学Python的同学&#xff0c;SQL也一定要学习&#xff0c;SQL几乎是每个数据岗的必备题目&#xff0c;下面分享几个常见的大厂SQL习题。 &#xff08;1&#xff09;找出连续7天登陆&#xff0c;连续30天登陆的用户&#xff08;小红书笔试&#xff0c;电信云面试&#xff09;&am…

7 大开源数据库利弊全对比

1、CUBRID CUBRID 是一个很好的免费开源选择&#xff0c;专门针对 Web 应用程序进行优化&#xff0c;当复杂的 Web 服务需要处理大量数据并生成巨大的并发请求时&#xff0c;CUBRID 非常有用。这个解决方案是用 C 写的。 优点&#xff1a; 多粒度锁定 在线备份 用于开发语言…

还在用Navicat?这款开源的数据库管理工具界面更炫酷!

数据库管理工具&#xff0c;是后端程序员使用频率非常高的的工具。Navicat、DataGrip虽然很好用&#xff0c;但都是收费的。最近在逛Github的时候&#xff0c;无意间发现了一款开源的数据库管理工具Beekeeper Studio&#xff0c;界面非常炫酷推荐给大家&#xff01; Beekeeper…

开源数据库管理系统现在比商业产品更受欢迎

原文链接&#xff1a;https://db-engines.com/en/blog_post/86 2021年1月13日 作者&#xff1a;马蒂亚斯盖尔曼&#xff08;Matthias Gelbmann&#xff09; Matthias Gelbmann是奥地利维也纳Solid IT联合创始人&#xff0c;董事总经理兼顾问。 Matthias Gelbmann在维也纳学习了…

你了解世界上功能最强大的开源数据库吗?

如果不是领导强制要求&#xff0c;可能根本不会留意到这款号称世界上功能最强大的开源数据库——PostgreSQL。如果你不读这篇文章&#xff0c;或许也会错过一个跃跃欲试想挤进前三的优秀数据库。 为了能够熟练运用&#xff0c;特意买书研究&#xff0c;发现这款数据库还真有点…

开源数据库列表

转载于&#xff1a;http://database.csdn.net/subject/databaseopen.htm 编辑导语 开源数据库最初的诞生和发展大都依靠自由软件开发者&#xff0c;但是&#xff0c;现在越来越多的IT公司开始把触角伸向了开源数据库。而早期投身于其中的IT厂商早已获利&#xff0c;比如Sleepy…

TuGraph 开源数据库体验

TuGraph 开源数据库体验 文章目录 TuGraph 开源数据库体验1. 简单介绍2. 可视化界面体验&#xff1a;查询界面&#xff1a;数据建模&#xff1a;数据导入&#xff1a; 3. 体验心得&#xff1a; 1. 简单介绍 TuGraph 是蚂蚁集团自主研发的大规模图计算系统&#xff0c;提供图数…

数据库与开源的未来

大家好&#xff0c;社区的小伙伴可能已经发现CnosDB已经全面拥抱Rust。我们一直高度关注行业趋势的发展&#xff0c;拥抱新兴的语言和前沿的技术。本期Jesse就想跟大家聊聊数据库与开源的未来。 本文仅代表个人观点&#xff0c;如有偏颇之处&#xff0c;还请海涵&#xff5e; …

做了7年开源数据库开发,我学到了什么?

作者 | PHILIP OTOOLE&#xff0c;已获作者授权 译者 | 弯月 责编 | 欧阳姝黎 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 2016年4月9日&#xff0c;第一版rqlite&#xff08;https://github.com/rqlite/rqlite/releases/tag/v1.0&#xff09;正式发布&a…

【数据库】什么是 PostgreSQL?开源数据库系统

文章目录 前言什么是 PostgreSQL&#xff1f;PostgreSQL 中的 SQL服务器管理接口 PostgreSQL 用途通用 OLTP&#xff1a;联合中心&#xff1a;地理空间&#xff1a;LAPP 堆栈&#xff1a; 使用 PostgreSQL 有什么好处&#xff1f;开源许可证&#xff1a;易于扩展&#xff1a;可…

这款免费开源的数据库工具,支持所有主流数据库!

Java技术栈 www.javastack.cn 关注阅读更多优质文章 DBeaver 是一个基于 Java 开发&#xff0c;免费开源的通用数据库管理和开发工具&#xff0c;使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。 由于 DBeaver 基于 Java 开发&#xff0c;可以运行在各种操作…

开源数据库管理系统DBeaver

简介 DBeaver dbeaver是免费和开源&#xff08;GPL&#xff09;为开发人员和数据库管理员通用数据库工具。 易用性是该项目的主要目标&#xff0c;是经过精心设计和开发的数据库管理工具。免费、跨平台、基于开源框架和允许各种扩展写作&#xff08;插件&#xff09;。 它支持任…

开源数据库的国际化思考与实践

整理 | 小雨青年 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 在全球开源技术掌门人高峰论坛上&#xff0c;PingCAP 联合创始人兼CTO 黄东旭分享了《开源数据库的国际化思考与实践》。 开源已死&#xff1f;不&#xff0c;还差得远 可能因为TiDB 是开源的&a…

一个比 ClickHouse 还快的开源数据库

开源分析数据库 ClickHouse 以快著称&#xff0c;真的如此吗&#xff1f;我们通过对比测试来验证一下。 ClickHouse vs Oracle 先用 ClickHouse&#xff08;简称 CH&#xff09;、Oracle 数据库&#xff08;简称 ORA&#xff09;一起在相同的软硬件环境下做对比测试。测试基准使…

Java开源数据库引擎,数据库计算封闭性的一站式解决方案

目录 前言引入一、数据库封闭性带来的问题&#xff1f;问题1: ETL变成ELT甚至LETETL&#xff1a;ELT&#xff1a; 问题2: 中间表带来的资源消耗和耦合问题3: 多样性数据源问题4: 存储过程带来的安全和耦合问题问题5: 大数据性能导致的尴尬 二、开放的SPL解决方式多样源直接计算…

比较适合物联网的开源数据库

物联网产生大量的数据&#xff0c;包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据&#xff0c;就需要使用数据库。物联网数据的本质需要一种不同类型的数据库。以下是一些数据库&#xff0c;当与物联网一起使用时&#xff0c;会给出非常好的结果。 物联…

阿里巴巴开源的免费数据库工具Chat2DB

Chat2DB 是一款由阿里巴巴开源的免费数据库工具&#xff0c;它为开发人员提供了一个强大且易于使用的平台&#xff0c;用于存储和查询数据。与传统的数据库工具相比&#xff0c;Chat2DB 具有以下特点和优势&#xff1a; 多数据库支持&#xff1a;Chat2DB 可以与多种类型的数据库…