SQL-每日一题【585.2016年的投资】

这篇具有很好参考价值的文章主要介绍了SQL-每日一题【585.2016年的投资】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目

Insurance 表:

SQL-每日一题【585.2016年的投资】,SQL每日一题,sql,算法,数据库

请你编写一个 SQL 查询,报告 2016 年 (tiv_2016) 所有满足下述条件的投保人的投保金额之和:

  • 他在 2015 年的投保额 (tiv_2015) 至少跟一个其他投保人在 2015 年的投保额相同。
  • 他所在的城市必须与其他投保人都不同(也就是说 (lat, lon) 不能跟其他任何一个投保人完全相同)。

tiv_2016 四舍五入的 两位小数 。

查询结果格式如下例所示。

示例:

SQL-每日一题【585.2016年的投资】,SQL每日一题,sql,算法,数据库

 文章来源地址https://www.toymoban.com/news/detail-581436.html

 

解题思路

1.题目要求我们查找在 2015 年的投保额 (tiv_2015) 至少跟一个其他投保人在 2015 年的投保额相同且所在的城市必须与其他投保人都不同(也就是说 (lat, lon) 不能跟其他任何一个投保人完全相同)的投保人,那么我们按条件进行筛选。

2.首先满足在 2015 年的投保额 (tiv_2015) 至少跟一个其他投保人在 2015 年的投保额相同的条件,我们先将tiv_2015进行分组,并且只返回每个分组中记录数大于1的分组。

3.其次我们满足条件二,也就是投保人的(lat,lon)只能是唯一的。我们对(lat,lon)进行分组,并且只返回每个分组中记录数等于1的分组。

4.最后我们筛选出满足条件的tiv_2016进行相加,并且保留两位小数即可。

代码实现

select round(sum(tiv_2016),2)as tiv_2016
from Insurance e
Where e.tiv_2015 in (select e1.tiv_2015 from Insurance e1 group by tiv_2015 having count(1) > 1)
and (e.lat,e.lon) in(select e1.lat,e1.lon from Insurance e1 group by e1.lat,e1.lon having count(1)=1)

测试结果

SQL-每日一题【585.2016年的投资】,SQL每日一题,sql,算法,数据库

 

到了这里,关于SQL-每日一题【585.2016年的投资】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL-每日一题【550.游戏玩法分析Ⅳ】

    Table:  Activity 编写一个 SQL 查询,报告在首次登录的第二天再次登录的玩家的比率,四舍五入到小数点后两位。换句话说,您需要计算从首次登录日期开始至少连续两天登录的玩家的数量,然后除以玩家总数。 查询结果格式如下所示:   前置知识 1.ROUND() 函数 ROUND() 函数用于

    2024年02月13日
    浏览(38)
  • SQL-每日一题【1193. 每月交易 I】

    Table:  Transactions 编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 以 任意顺序 返回结果表。 查询结果格式如下所示。 示例 1:     1.题目要求我们查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额

    2024年02月13日
    浏览(33)
  • SQL-每日一题【1158. 市场分析 I】

    Table:  Users Table:  Orders   Table:  Items   请写出一条SQL语句以查询每个用户的注册日期和在  2019   年作为买家的订单总数。 以  任意顺序  返回结果表。 查询结果格式如下。 示例 1:   1.题目要求我们查询每个用户的注册日期和在  2019   年作为买家的订单总数。我们可以将

    2024年02月14日
    浏览(36)
  • SQL-每日一题【584.寻找用户推荐人】

    给定表  customer  ,里面保存了所有客户信息和他们的推荐人。 写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都  不是  2。 对于上面的示例数据,结果为:    1.题目要求查询列表中客户的推荐人的编号都  不是  2 和为 null 的客户。我们直接使用 where

    2024年02月13日
    浏览(36)
  • SQL-每日一题【1173. 即时食物配送 I】

     配送表:  Delivery 如果顾客期望的配送日期和下单日期相同,则该订单称为 「即时订单」,否则称为「计划订单」。 查询即时订单所占的百分比, 保留两位小数。 查询结果如下所示。 示例 1:     1.题目要求我们查询出顾客期望的配送日期和下单日期相同的记录所占百分比

    2024年02月14日
    浏览(39)
  • SQL-每日一题【1484. 按日期分组销售产品】

    表  Activities : 编写解决方案找出每个日期、销售的不同产品的数量及其名称。 每个日期的销售产品名称应按词典序排列。 返回按  sell_date  排序的结果表。 结果表结果格式如下例所示。 示例 1:     前置知识 group_concat函数的功能 将group by产生的同一个分组中的值连接起来

    2024年02月13日
    浏览(42)
  • SQL-每日一题【1068. 产品销售分析 I】

    销售表  Sales : 产品表  Product :   写一条SQL 查询语句获取 Sales 表中所有产品对应的 产品名称 product_name 以及该产品的所有 售卖年份 year 和 价格 price 。 查询结果中的顺序无特定要求。 查询结果格式示例如下:   1.题目要求我们查询出 Sales 表中所有产品对应的 产品名

    2024年02月15日
    浏览(44)
  • SQL-每日一题【1517. 查找拥有有效邮箱的用户】

    表:  Users 编写一个解决方案,以查找具有有效电子邮件的用户。 一个有效的电子邮件具有前缀名称和域,其中:   前缀  名称是一个字符串,可以包含字母(大写或小写),数字,下划线  \\\'_\\\'  ,点  \\\'.\\\'  和/或破折号  \\\'-\\\'  。前缀名称  必须  以字母开头。 域  为  \\\'@le

    2024年02月12日
    浏览(40)
  • 【Hive SQL 每日一题】统计用户连续下单的日期区间

    测试数据 需求说明 统计用户连续下单的日期区间,所以连续的下单日期必须 = 2 ,例如: 2023-01-01,2023-01-02 。 分析步骤如下: 按 user_id 、 order_date 进行分组,同天的下单日期只保留一条。 使用 row_number 窗口函数对行号进行标记。 使用 date_sub 函数与行号标记进行运算,如果

    2024年02月09日
    浏览(35)
  • SQL- 每日一题【1327. 列出指定时间段内所有的下单产品】

    表:  Products 表:  Orders   写一个解决方案,要求获取在 2020 年 2 月份下单的数量不少于 100 的产品的名字和数目。 返回结果表单的  顺序无要求  。 查询结果的格式如下。 示例 1:         1.题目要求我们获取在 2020 年 2 月份下单的数量不少于 100 的产品的名字和数目。 2.首先

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包