日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

LeetCode MySQL 1336. 每次访问的交易次数

發(fā)布時間:2024/7/5 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode MySQL 1336. 每次访问的交易次数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

表: Visits

+---------------+---------+ | Column Name | Type | +---------------+---------+ | user_id | int | | visit_date | date | +---------------+---------+ (user_id, visit_date) 是該表的主鍵 該表的每行表示 user_id 在 visit_date 訪問了銀行

表: Transactions

+------------------+---------+ | Column Name | Type | +------------------+---------+ | user_id | int | | transaction_date | date | | amount | int | +------------------+---------+ 該表沒有主鍵,所以可能有重復行 該表的每一行表示 user_id 在 transaction_date 完成了一筆 amount 數(shù)額的交易 可以保證用戶 (user) 在 transaction_date 訪問了銀行 (也就是說 Visits 表包含 (user_id, transaction_date))

銀行想要得到銀行客戶在一次訪問時的交易次數(shù)和相應的在一次訪問時該交易次數(shù)的客戶數(shù)量的圖表

寫一條 SQL 查詢多少客戶訪問了銀行但沒有進行任何交易,多少客戶訪問了銀行進行了一次交易等等

結果包含兩列:

  • transactions_count: 客戶在一次訪問中的交易次數(shù)
  • visits_count: 在 transactions_count 交易次數(shù)下相應的一次訪問時的客戶數(shù)量
    transactions_count 的值從 0 到所有用戶一次訪問中的 max(transactions_count)

按 transactions_count 排序

下面是查詢結果格式的例子:

Visits 表: +---------+------------+ | user_id | visit_date | +---------+------------+ | 1 | 2020-01-01 | | 2 | 2020-01-02 | | 12 | 2020-01-01 | | 19 | 2020-01-03 | | 1 | 2020-01-02 | | 2 | 2020-01-03 | | 1 | 2020-01-04 | | 7 | 2020-01-11 | | 9 | 2020-01-25 | | 8 | 2020-01-28 | +---------+------------+ Transactions 表: +---------+------------------+--------+ | user_id | transaction_date | amount | +---------+------------------+--------+ | 1 | 2020-01-02 | 120 | | 2 | 2020-01-03 | 22 | | 7 | 2020-01-11 | 232 | | 1 | 2020-01-04 | 7 | | 9 | 2020-01-25 | 33 | | 9 | 2020-01-25 | 66 | | 8 | 2020-01-28 | 1 | | 9 | 2020-01-25 | 99 | +---------+------------------+--------+ 結果表: +--------------------+--------------+ | transactions_count | visits_count | +--------------------+--------------+ | 0 | 4 | | 1 | 5 | | 2 | 0 | | 3 | 1 | +--------------------+--------------+ * 對于 transactions_count = 0, * visits 中 (1, "2020-01-01"), (2, "2020-01-02"), * (12, "2020-01-01")(19, "2020-01-03") * 沒有進行交易,所以 visits_count = 4* 對于 transactions_count = 1, * visits 中 (2, "2020-01-03"), (7, "2020-01-11"), * (8, "2020-01-28"), (1, "2020-01-02") *(1, "2020-01-04") 進行了一次交易, * 所以 visits_count = 5* 對于 transactions_count = 2, * 沒有客戶訪問銀行進行了兩次交易, * 所以 visits_count = 0* 對于 transactions_count = 3, * visits 中 (9, "2020-01-25") 進行了三次交易, * 所以 visits_count = 1* 對于 transactions_count >= 4, * 沒有客戶訪問銀行進行了超過3次交易, * 所以我們停止在 transactions_count = 3

如下是這個例子的圖表:

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/number-of-transactions-per-visit
著作權歸領扣網(wǎng)絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。

2. 解題

  • 先生成第一列,多了沒關系,一會篩選,注意加個0
select 0 transactions_count union all select row_number() over(order by transaction_date) transactions_count from Transactions
  • with as 創(chuàng)建 臨時表 t
select distinct v.user_id, visit_date, transaction_date,count(*) over(partition by user_id, visit_date, visit_date=transaction_date) times from Visits v left join Transactions tr on v.user_id=tr.user_id and v.visit_date=tr.transaction_date {"headers": ["user_id", "visit_date", "transaction_date", "times"], "values": [ [1, "2020-01-01", null, 1], [1, "2020-01-02", "2020-01-02", 1], [1, "2020-01-04", "2020-01-04", 1], [2, "2020-01-02", null, 1], [2, "2020-01-03", "2020-01-03", 1], [7, "2020-01-11", "2020-01-11", 1], [8, "2020-01-28", "2020-01-28", 1], [9, "2020-01-25", "2020-01-25", 3], [12, "2020-01-01", null, 1], [19, "2020-01-03", null, 1]]}
  • 統(tǒng)計數(shù)量
select 0 transactions_count, count(*) visits_count from t where transaction_date is null union all select times transactions_count, count(*) visits_count from t where transaction_date is not null group by times {"headers": ["transactions_count", "visits_count"], "values": [[0, 4], [1, 5], [3, 1]]}
  • 左連接,篩選數(shù)據(jù)
# Write your MySQL query statement below with t as (select distinct v.user_id, visit_date, transaction_date,count(*) over(partition by user_id, visit_date, visit_date=transaction_date) timesfrom Visits v left join Transactions tron v.user_id=tr.user_id and v.visit_date=tr.transaction_date )select t1.transactions_count, ifnull(t2.visits_count,0) visits_count from (select 0 transactions_countunion allselect row_number() over(order by transaction_date) transactions_countfrom Transactions ) t1 left join (select 0 transactions_count, count(*) visits_countfrom twhere transaction_date is nullunion allselect times transactions_count, count(*) visits_countfrom twhere transaction_date is not nullgroup by times ) t2 on t1.transactions_count = t2.transactions_count where t1.transactions_count <= (select max(transactions_count) from (select 0 transactions_count, count(*) visits_countfrom twhere transaction_date is nullunion allselect times transactions_count, count(*) visits_countfrom twhere transaction_date is not nullgroup by times) t3)

評論區(qū)簡潔解答

# Write your MySQL query statement below with temp1 as (select transactions_count, count(user_id) visits_countfrom (select v.user_id, count(t.user_id) transactions_countfrom Visits v left join Transactions ton v.user_id = t.user_id and visit_date = transaction_dategroup by v.user_id, v.visit_date) agroup by transactions_count )select temp2.transactions_count, ifnull(temp1.visits_count,0) visits_count from (select 0 transactions_countunionselect row_number() over (order by transaction_date) transactions_countfrom Transactions ) temp2 left join temp1 on temp2.transactions_count = temp1.transactions_count where temp2.transactions_count <= (select max(transactions_count)from temp1)

我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode MySQL 1336. 每次访问的交易次数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜色网 | 黄色仓库av| 欧美精品在线免费 | 亚洲人妻一区二区 | 免费看黄色的视频 | 色婷婷综合网 | 黄瓜视频色版 | 在线天堂在线 | 国产精品黄在线观看 | 日本在线视频免费 | 色窝窝无码一区二区三区 | 青草视频在线免费观看 | 午夜视频福利在线观看 | 奇米影视狠狠干 | 97国产精品久久久 | 国产美女精品在线 | 国产av一区二区不卡 | 久久久久亚洲视频 | 久久久久成人精品免费播放动漫 | 视频精品一区 | 亚洲黄色精品视频 | 欧美午夜大片 | 免费看黄色av | 久久sp| 成人精品免费在线观看 | 超碰2019| 婷婷六月天在线 | 欧美不卡一区 | 岛国精品在线观看 | 天天综合网国产 | 五月婷婷丁香综合 | 国产情侣av自拍 | 男女偷爱性视频刺激 | 日韩狠狠 | 四虎精品永久在线 | 免费一区二区三区四区 | 动漫美女隐私无遮挡 | 一区二区三区日本视频 | 亚洲精品天堂在线 | 99re在线观看| 中国一级特黄录像播放 | 日本激情视频在线 | 超碰69 | 视频在线一区二区 | 国产欧美日韩免费 | 亚洲国产综合av | 嫩草网站入口 | 熟妇高潮一区二区 | 在线免费观看亚洲视频 | 欧美日韩在线免费视频 | 男人天堂视频在线观看 | 一区二区三区免费看视频 | av中文字幕在线免费观看 | 男人插女人免费视频 | 日韩av大片在线观看 | 欧美午夜精品久久久久久人妖 | 欧美综合视频在线观看 | 女同亚洲精品一区二区三 | 色操插| 97人人爽人人 | 久久视频中文字幕 | 久久精品视频免费 | 久久久久97 | 中文字av | 久久网伊人 | 欧美激情在线观看一区 | 久久九九99 | 87福利视频 | 午夜激情视频在线播放 | 无码国产伦一区二区三区视频 | 麻豆md0049免费 | 中国黄色在线视频 | 欧美亚洲视频 | av在线网页 | 激情 小说 亚洲 图片 伦 | 国产真实伦对白全集 | 中国亚洲老头同性gay男男… | 神马久久午夜 | 五月天激情国产综合婷婷婷 | 精品国产成人亚洲午夜福利 | 欧美黄在线 | 激情午夜婷婷 | 久久无码性爱视频 | 久久久久久夜 | 色网导航站 | 人人超碰97 | 午夜av一区二区三区 | 九一亚色 | 一级做a爱片久久 | 女人囗交吞精囗述 | 久久九九国产精品 | 国产成人精品一区二 | 清冷男神被c的合不拢腿男男 | 人妻91麻豆一区二区三区 | 曰本不卡视频 | 婷婷色亚洲 | 国产精品国产三级国产 | 青青欧美 | 丰满大爆乳波霸奶 |