kaggle网站sql学习微课

这篇博客是关于Kaggle上的SQL学习课程,涵盖了从基础的表计数到复杂的联结查询。读者将通过一系列练习了解SQL,如查询表的概要,创建犯罪地图,使用Select/From/Where,Group by,Order by,With&As等,并学习如何在实际数据集中应用这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

开始sql之旅

练习1:数一数数据集里表的个数

练习2:探索表的概要

练习3:创建一个犯罪地图

Select/From/Where简单查询

练习1:找出使用ppm这种计量单位的国家

练习2: select*查询所有字段

Group by&Having&Count 

练习1:找出评论数过万的作者

练习2:查询已删除的评论

Order by&date&extract

练习1:查询政府教育开支

练习2:发现更有趣的代码

With&As与公共表表达式

练习1:当交通量变大时,交通会慢多少

练习2:查看前五行

练习3:统计每一年的总旅行次数

练习4:统计2017每一月的总旅行次数

练习5:每小时次数和速度......

联结 joining data

练习1:看看都有什么表

练习2:查看想要查看的表格

练习3:确定研究的方向

练习4:通过联结找到问题的答案

练习5:统计用户和回答问题数量

练习6:写一个通用功能,获得任何主题的专家   



开始sql之旅

对你的新数据探索技能的第一次测试使用的是描述芝加哥市犯罪的数据。

1、创建客户机对象检索信息

教程说,你很快就会看到这个客户机对象将在从BigQuery数据集中检索信息方面发挥中心作用。

反正我觉得挺迷的

client=bigquery.Client()

2、首先使用dataset()方法构造对dataset的引用。

dataset_ref = client.dataset("chicago_crime", project="bigquery-public-data")

3、接下来,我们使用get_dataset()方法以及刚才构造的引用来获取数据集

dataset = client.get_dataset(dataset_ref)

练习1:数一数数据集里表的个数

tables = list(client.list_tables(dataset))

print(len(tables))

这里可以看到是对dataset进行list_tables不出我所意料,但client.目前可以理解为客户机操作?然后又list了一次,很难理解,先背下来吧。在print那里又查了一下tables的长度,这里我猜不到tables是什么数据格式,有可能是tables接收了对dataset的list,所以现在tables里边应该是一个关于list的名称排列,我Print了一下tables,出现了这个,但是我看不懂,是一个对象吧。

[<google.cloud.bigquery.table.TableListItem object at 0x7f6d79d8c590>]

输出结果是1

练习2:探索表的概要

就是大致了解一下有多少行列,包含哪些信息,但是这个题问的是犯罪表中有多少列具有时间戳数据?时间戳不知道,百度一下

一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。

好像是用来标记上一次更新的时间

这一步我以为可以直接使用tables但是还是大意了,要重新引用和获取表

构造对“犯罪”表的引用

table_ref = dataset_ref.table("crime")

#API请求-获取表

table = client.get_table(table_ref)

#打印“芝加哥大学犯罪”数据集中“犯罪”表中所有列的信息

print(table.schema)

我是没看明白哪里有时间戳

练习3:创建一个犯罪地图

题目介绍:如果您想创建一个地图,在每个犯罪的位置都有一个点,那么您可能需要从犯罪表中提取两个字段的名称,以便在地图上绘制犯罪?

这是叫我检查列名(行名)吧,找出地点的所在

果然是list_rows,结果找出来的是经度纬度,也学到了大数据确定地点都用经纬度。

client.list_rows(table,max_results=5).to_dataframe()

用户操作.展示行(表,展示的行数).以数据框的形式展示吧

Select/From/Where简单查询

前提条件,我们只用一个数据集pet_records只有一个表叫做pets

这个网站的sql代码都一股python味,我怀疑这是不是在python的环境里

在教程里他告诉我们每个用户每个月只能扫描5TB的内容,但是我真不懂,谁能用上5TB呢?

我一下就想到了某互联网大厂jd,你相信数据的力量,亿量级产品数据,无疑是你的梦想乐园。

5TB肯定过亿了吧。

这个教程可能是对提取数据需要花费的算力非常在意,我在想在生产环境中应该也是这样吧,要控制资源的使用,不然成了黑客了,破坏系统。

查看所查询的数据字节

query = """
        SELECT score, title
        FROM `bigquery-public-data.hacker_news.full`
        WHERE type = "job" 
        """

dry_run_config = bigquery.QueryJobConfig(dry_run=True)

dry_run_query_job = client.query(query, job_config=dry_run_config)

print("This query will process {} bytes.".format(dry_run_query_job.total_bytes_processed)

限制所查询数据的大小


ONE_MB = 1000*1000
safe_config = bigquery.QueryJobConfig(maximum_bytes_billed=ONE_MB)

safe_query_job = client.query(query, job_config=safe_config)

safe_query_job.to_dataframe()

练习1:找出使用ppm这种计量单位的国家

这次的练习是关于空气质量

first_query = """
              SELECT country
              FROM `bigquery-public-data.openaq.global_air_quality`
              WHERE unit = "ppm"
              """

练习2: select*查询所有字段

"""
                       SELECT *
                       FROM `bigquery-public-data.openaq.global_air_quality`
                       WHERE value = 0
                       """
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值