沐数科技数据开发岗笔试题2025
描述性统计
标准差
答案: A
解析:
标准差
衡量数据集中数值变化或离散程度的一种度量。它反映了数据集中的各个数值与数据集的平均值(均值)之间的偏离程度。标准差越大,表明数据的分布越分散;标准差越小,表明数据越集中。
标准差的取值范围是[0, +∞)
标准差是方差的平方根
在有限的数据集中,标准差不可能大于数据集中的最大值与最小值之差的一半
均值, 即平均值
正态分布
也被称为高斯分布(Gaussian distribution)
特征
-
对称性:正态分布曲线关于均值对称,均值所在的垂直线将曲线分为两个镜像部分。
-
钟形曲线:分布曲线呈现为钟形,均值处达到最高点,向两侧逐渐降低。
-
均值、中位数和众数相等:在正态分布中,均值(平均值)、中位数(数据中间值)和众数(出现次数最多的值)是相等的。
-
68-95-99.7规则:在正态分布中,大约68%的数据值落在距离均值一个标准差的范围内,约95%的数据值落在两个标准差的范围内,而约99.7%的数据值落在三个标准差的范围内。
中位数
答案: B
解析:
A. 所有数据的平均值, 是所有数据值加起来除以数据个数得到的值。
C. 最小值和最大值的平均值, 这通常被称为数据集的中点(Midrange)
D. 数据按降序排列后的第一个值, 这个值实际上是数据集的最大值(Maximum)
数据探查
数据清洗
答案: C
解析:
数据清洗的步骤
检查缺失值和异常值>>数据格式化>>数据合并>>生成报告
检查数据分布
答案: B
解析:
A. 折线图(Line Chart)
-
用于展示数据随时间或有序类别变化的趋势。
-
适合展示连续数据和时间序列数据的变化情况。
-
可以清晰地显示数据的增减变化和预测未来的趋势。
B. 直方图(Histogram)
-
用于展示数据分布的情况。
-
通过将数据分成若干个区间(bins),展示每个区间内数据的频率或数量。
-
适合检查数据的分布形态,如是否接近正态分布,以及数据的集中趋势和离散程度。
C. 散点图(Scatter Plot)
-
用于展示两个变量之间的关系。
-
通过在二维平面上绘制点,可以观察两个变量之间是否存在相关性。
-
适合探索变量之间的相关性、趋势和模式。
D. 热力图(Heatmap)
-
用颜色变化来展示矩阵或表格中数据的大小。
-
适合展示两个类别变量之间的关系,如时间序列数据的周期性变化。
-
常用于展示数据的密度或强度,如地理热力图、用户行为热力图等。
主键
答案: A
解析:
主键约束: 唯一且非空
主键
答案: A
解析:
A.
-
业务逻辑错误:逻辑主键用于确保数据的一致性和准确性。如果主键不唯一,可能会插入重复的记录,导致业务逻辑错误。
-
数据扩散:在数据扩散(Data Replication)过程中,如果主键不唯一,可能会导致数据不一致,因为相同的主键值可能会被复制到多个位置。
-
数据不一致:由于重复的主键值,可能会导致数据更新或删除操作影响到错误的记录,从而造成数据不一致。
数据扩散(Data Replication)是将数据从一个位置复制到另一个位置的过程,以确保数据的可用性、冗余和容错性
B. 主键不唯一 可能因为重复值导致索引效率降低。
C. 主键不唯一,查询操作仍然可以关联到数据,只是可能会关联到多条记录,而不是预期的单条记录。
D. 相反,主键的定义就是为了确保唯一性,如果违反了这一约束,数据库通常会报错,需要手动干预来解决重复主键的问题。
连续型变量
答案: D
解析:
连续型变量(Continuous Variable)是指可以在无限或有限的区间内取任意值的变量。
离散型变量(Discrete Variable)只能取有限个或可数无限个值,如人数、车辆数、产品数量等
连续型变量的离群点(Outliers)是指在数据集中与其他数据点明显不同或者异常的数据点。这些数据点可能比其他数据点要远离数据集的中心,或者具有异常的数值。离群点可能是由于数据采集错误、异常事件、测量误差或者其他未知因素引起的。离群点的存在可以对数据分析和统计建模产生重要影响,因为它们可能导致模型不准确或者产生误导性的结果。
数据缺失值
答案: B
解析:
A. 用前一天的数据填充缺失值:
-
这种方法假设数据在短期内是稳定的,前一天的数据可以作为当天数据的合理代理。这种方法简单易行,但可能不适用于数据波动较大的情况。
B. 检查缺失值是否集中在特定的时间段:
-
通过检查缺失值的分布,可以了解数据缺失是否具有某种模式。例如,如果缺失值集中在特定的时间段,可能表明数据收集过程中存在系统性问题,如设备故障或节假日效应。这种方法有助于识别数据缺失的原因,从而采取更有针对性的处理措施。
C. 删除所有包含缺失值的日期:
-
删除包含缺失值的日期可以简化分析,但可能会导致信息损失,特别是如果缺失值较多时。这种方法适用于缺失值较少且删除后不会对分析结果产生显著影响的情况。
D. 插值法填充所有缺失值:
-
插值法(如线性插值、多项式插值等)通过使用数据集中的其他数据点来估计缺失值。这种方法可以保留更多的数据信息,但插值的准确性依赖于数据的分布和趋势。插值可能不适用于缺失值较多或缺失模式不规则的情况。
线性差值: 如果两个已知数据点之间的数据变化是线性的,即在这两个点之间,数据的变化率是恒定的。
多项式插值: 使用一个多项式函数来通过所有已知的数据点。这种方法可以提供比线性插值更复杂的数据模型,适用于数据变化更复杂的情况。
业务
10.实操题
销售订单表
订单明细表
【备注】 - 业务主键(Business Key):指在业务逻辑中唯一标识一条记录的字段或字段组合。与数据库中的主键(Primary Key)有所不同,业务主键(Business Key)是业务层面的唯一标识,通常由业务规则决定,例如,订单号、订单明细号,身份证号等
【问题】 仅基于这份数据,以下哪些说法正确?(多选)
A. order 表的业务主键存在空值缺失情况
B. order 表的数据时间范围为 从 2009 ~ 2012 年的订单数据
C. order_detail 缺少一个明确的业务主键字段,但是存在业务主键字段组合(order_id + product_id)
D. 华北区中,订单最多的客户(customer)是 SAVEA,Owner 都是 苏先生,一共有16笔订单
E. 一共有77个产品,都有被卖出去;其中单价最高的是 绿茶,其单价为 263.5
答案: A, C, D, E
解析:
B. order 表显示的订单日期从 2010/8/12
开始,一直到 2010/10/8
结束
沐数一下
答案: B、C、D、G、H
解析:
选项 A 提供数据存储服务,通常不是探查报告的直接功能,而是数据管理系统或数据库的角色。
沐数一下
答案: B, C, D
解析:
A 存储数据表的所有数据,通常不是探查报告的直接功能,而是数据库或数据存储系统的角色。
E 对数据表中的值进行清洗和标准化,虽然探查报告可能提供一些数据清洗和标准化的指导,但直接进行这些操作通常需要其他工具或过程。
沐数一下
答案: A, B, C, D, E
SQL
解析实操题:
SELECT s.country,p.product_id,p.product_name,SUM(s.amount) AS total_sales
FROM sales s
JOIN products p ON s.product_id = p.product_id
WHERE s.country IN ('法国', '英国')AND s.sale_date BETWEEN '2020-09-01' AND '2020-09-30'
GROUP BY s.country,p.product_id,p.product_name
ORDER BY s.country,p.product_id;
输出示例
解析填空题
SELECT p.product_name,ROUND(SUM(s.amount), 0) AS total_sales
FROM sales s
JOIN products p ON s.product_id = p.product_id
WHERE s.country = '英国'AND s.sale_date BETWEEN '2020-09-01' AND '2020-09-30'
GROUP BY p.product_name
ORDER BY total_sales DESC
FETCH FIRST 1 ROW ONLY;
解析:
实操题
SELECT s.country,SUM(s.amount) AS total_sales,CASE WHEN SUM(s.amount) > 10000 THEN '合格'ELSE '不合格'END AS performance
FROM sales s
GROUP BY s.country
ORDER BY s.country;
填空题
SELECT s.country,ROUND(SUM(s.amount), 0) AS total_sales
FROM sales s
GROUP BY s.country
ORDER BY total_sales DESC
FETCH FIRST 1 ROW ONLY;
解析:
实操题
SELECTp.product_name AS "产品名称",SUM(s.sales_amount) AS "销售金额",ROUND(SUM(s.sales_amount) / total_sales.total_amount * 100, 2) AS "占比"
FROMsales s
JOINproducts p ON s.product_id = p.product_id
CROSS JOIN(SELECT SUM(sales_amount) AS total_amount FROM sales) total_sales
GROUP BYp.product_name, total_sales.total_amount
HAVINGROUND(SUM(s.sales_amount) / total_sales.total_amount * 100, 2) >= 10
ORDER BY"占比" DESC;
CROSS JOIN
的作用是将 sales
表中的每一行与 total_sales
子查询的结果(即总销售金额)进行笛卡尔积连接。这意味着每一行 sales
数据都会与 total_sales
中的总金额进行组合,从而使得每一行都可以访问总销售金额。
填空题
WITH ProductSales AS (SELECTp.product_name,SUM(s.sales_amount) AS total_sales_amount,ROUND(SUM(s.sales_amount) / total_sales.total_amount * 100, 2) AS sales_percentageFROMsales sJOINproducts p ON s.product_id = p.product_idCROSS JOIN(SELECT SUM(sales_amount) AS total_amount FROM sales) total_salesGROUP BYp.product_name, total_sales.total_amountHAVINGROUND(SUM(s.sales_amount) / total_sales.total_amount * 100, 2) >= 10
),
RankedProducts AS (SELECTsales_percentage,DENSE_RANK() OVER (ORDER BY sales_percentage DESC) AS rankFROMProductSales
)
SELECTCOUNT(*) AS product_count,MAX(CASE WHEN rank = 3 THEN sales_percentage END) AS third_largest_percentage
FROMRankedProducts;
解析:
实操题
SELECT CASE WHEN age < 25 THEN '25岁以下'WHEN age >= 25 AND age < 30 THEN '25-30岁'WHEN age >= 30 AND age < 35 THEN '30-35岁'WHEN age >= 35 AND age < 40 THEN '35-40岁'WHEN age >= 40 AND age < 45 THEN '40-45岁'WHEN age >= 45 AND age < 50 THEN '45-50岁'WHEN age >= 50 AND age < 55 THEN '50-55岁'WHEN age >= 55 THEN '55岁及以上'ELSE '异常情况'END AS age_group,COUNT(*) AS num_employees
FROM employees
WHERE age IS NOT NULL AND age > 0
GROUP BY CASE WHEN age < 25 THEN '25岁以下'WHEN age >= 25 AND age < 30 THEN '25-30岁'WHEN age >= 30 AND age < 35 THEN '30-35岁'WHEN age >= 35 AND age < 40 THEN '35-40岁'WHEN age >= 40 AND age < 45 THEN '40-45岁'WHEN age >= 45 AND age < 50 THEN '45-50岁'WHEN age >= 50 AND age < 55 THEN '50-55岁'WHEN age >= 55 THEN '55岁及以上'ELSE '异常情况'END
ORDER BY CASE WHEN age_group = '25岁以下' THEN 1WHEN age_group = '25-30岁' THEN 2WHEN age_group = '30-35岁' THEN 3WHEN age_group = '35-40岁' THEN 4WHEN age_group = '40-45岁' THEN 5WHEN age_group = '45-50岁' THEN 6WHEN age_group = '50-55岁' THEN 7WHEN age_group = '55岁及以上' THEN 8ELSE 9END;
填空题
WITH AgeDistribution AS (SELECT CASE WHEN age < 25 THEN '25岁以下'WHEN age >= 25 AND age < 30 THEN '25-30岁'WHEN age >= 30 AND age < 35 THEN '30-35岁'WHEN age >= 35 AND age < 40 THEN '35-40岁'WHEN age >= 40 AND age < 45 THEN '40-45岁'WHEN age >= 45 AND age < 50 THEN '45-50岁'WHEN age >= 50 AND age < 55 THEN '50-55岁'WHEN age >= 55 THEN '55岁及以上'ELSE '异常情况'END AS age_group,COUNT(*) AS num_employeesFROM employeesWHERE age IS NOT NULL AND age > 0GROUP BY CASE WHEN age < 25 THEN '25岁以下'WHEN age >= 25 AND age < 30 THEN '25-30岁'WHEN age >= 30 AND age < 35 THEN '30-35岁'WHEN age >= 35 AND age < 40 THEN '35-40岁'WHEN age >= 40 AND age < 45 THEN '40-45岁'WHEN age >= 45 AND age < 50 THEN '45-50岁'WHEN age >= 50 AND age < 55 THEN '50-55岁'WHEN age >= 55 THEN '55岁及以上'ELSE '异常情况'END
),
Ranking AS (SELECT age_group, num_employees,RANK() OVER (ORDER BY num_employees DESC) AS rankFROM AgeDistribution
)
SELECT age_group,num_employees
FROM Ranking
WHERE rank = 2;SELECT COUNT(*) AS num异常
FROM employees
WHERE age IS NULL OR age <= 0;
SELECT reason,COUNT(*) AS num_people,RANK() OVER (ORDER BY COUNT(*) DESC) AS ranking
FROM new_hires
GROUP BY reason
ORDER BY ranking;
填空题
SELECT reason, COUNT(*) AS num_people
FROM new_hires
GROUP BY reason
ORDER BY COUNT(*) DESC
FETCH FIRST 1 ROW ONLY OFFSET 3 ROWS;
解析:
实操题
SELECTYEAR(resignation_date) AS resignation_year,COUNT(employee_id) AS num_resignations,SUM(COUNT(employee_id)) OVER (ORDER BY YEAR(resignation_date)) AS cumulative_resignations
FROM employee_resignations
GROUP BY YEAR(resignation_date)
ORDER BY resignation_year;
窗口函数 SUM(...) OVER (...)
的行为。它不是在对整个结果集进行求和,而是在对结果集的每个分组(由 GROUP BY
定义)进行求和。
OVER (ORDER BY YEAR(resignation_date))
定义了窗口函数的操作范围,即按照 resignation_date
的年份进行排序
填空题
WITH ResignationStats AS (SELECTYEAR(resignation_date) AS resignation_year,COUNT(employee_id) AS num_resignations,SUM(COUNT(employee_id)) OVER (ORDER BY YEAR(resignation_date)) AS cumulative_resignationsFROM employee_resignationsGROUP BY YEAR(resignation_date)
)
SELECT resignation_year,num_resignations
FROM ResignationStats
WHERE cumulative_resignations > 100
ORDER BY resignation_year
FETCH FIRST 1 ROW ONLY;
解析:
实操题
SELECT AVG(CASE WHEN class = 'Class1' THEN score ELSE NULL END) AS class1_avg,AVG(CASE WHEN class = 'Class2' THEN score ELSE NULL END) AS class2_avg,AVG(CASE WHEN class = 'Class1' THEN score ELSE NULL END) - AVG(CASE WHEN class = 'Class2' THEN score ELSE NULL END) AS difference
FROM scores
WHERE course = 'data_visualization';
填空题
SELECT ROUND(AVG(CASE WHEN class = 'Class1' THEN score ELSE NULL END) - AVG(CASE WHEN class = 'Class2' THEN score ELSE NULL END), 2) AS difference
FROM scores
WHERE course = 'data_visualization';
解析:
实操题
Oracle 12c及更高版本支持FILTER
子句, 用于在聚合函数中过滤数据
SELECT class,AVG(score) OVER (PARTITION BY class) AS avg_score,COUNT(*) FILTER (WHERE score < AVG(score) OVER (PARTITION BY class)) AS below_avg_count
FROM scores
WHERE course = 'sql'
GROUP BY class;
Oracle 12c版本以下>>使用子查询和CASE
语句来实现相同的功能
SELECT class,AVG(score) AS avg_score,(SELECT COUNT(*) FROM scores s2 WHERE s2.class = s.class AND s2.score < s.avg_score) AS below_avg_count
FROM scores s
WHERE s.course = 'sql'
GROUP BY class;
子查询中的 s2.class = s.class
确保了子查询只考虑与外部查询中当前处理的班级相同的记录。换句话说,对于每个班级,子查询都会计算该班级中成绩低于班级平均分的学生人数。
填空题
SELECT class,AVG(score) AS avg_score,COUNT(*) FILTER (WHERE score < AVG(score) OVER (PARTITION BY class)) AS below_avg_count
FROM scores
WHERE course = 'sql'
GROUP BY class
ORDER BY avg_score ASC
FETCH FIRST 1 ROW ONLY;
解析
实操题思路
使用两个CTE表达式>>计算出每月销售额; 计算去年同月的销售额, 计算上个月的销售额
主查询>>计算同比增长率, 环比增长率, 提取需要的字段
数据范围:
-
确保
sales_data
表中包含2019年和2020年的数据,否则同比计算可能不准确
WITH MonthlySales AS (-- 假设原始数据表为 sales_data, 包含 sale_date 和 amount 字段SELECTTO_CHAR(sale_date, 'YYYY') AS sale_year,TO_CHAR(sale_date, 'MM') AS sale_month,SUM(amount) AS total_salesFROM sales_dataWHERE sale_date >= TO_DATE('2019-01-01', 'YYYY-MM-DD') -- 包含2019年数据AND sale_date < TO_DATE('2021-01-01', 'YYYY-MM-DD') -- 包含2020年数据GROUP BY TO_CHAR(sale_date, 'YYYY'), TO_CHAR(sale_date, 'MM')
),
CTE AS (SELECTsale_year,sale_month,total_sales,LAG(total_sales, 12) OVER (ORDER BY sale_year, sale_month) AS prev_year_sales, -- 去年同月销售额LAG(total_sales, 1) OVER (ORDER BY sale_year, sale_month) AS prev_month_sales -- 上月销售额FROM MonthlySales
)
SELECTsale_year AS 年份,sale_month AS 月份,total_sales AS 销售额,-- 计算同比增长率CASEWHEN prev_year_sales IS NOT NULL AND prev_year_sales <> 0 THEN(total_sales - prev_year_sales) / prev_year_salesELSENULLEND AS 同比,-- 计算环比增长率CASEWHEN prev_month_sales IS NOT NULL AND prev_month_sales <> 0 THEN(total_sales - prev_month_sales) / prev_month_salesELSENULLEND AS 环比
FROM CTE
WHERE sale_year = '2020' -- 只输出2020年的结果
ORDER BY sale_year, sale_month;
填空题
在主查询的where过滤条件增加月份的过滤, 注意格式>>round, to_char(number, format)
WITH MonthlySales AS (-- 假设原始数据表为 sales_data, 包含 sale_date 和 amount 字段SELECTTO_CHAR(sale_date, 'YYYY') AS sale_year,TO_CHAR(sale_date, 'MM') AS sale_month,SUM(amount) AS total_salesFROM sales_dataWHERE sale_date >= TO_DATE('2019-01-01', 'YYYY-MM-DD') -- 包含2019年数据AND sale_date < TO_DATE('2021-01-01', 'YYYY-MM-DD') -- 包含2020年数据GROUP BY TO_CHAR(sale_date, 'YYYY'), TO_CHAR(sale_date, 'MM')
),
CTE AS (SELECTsale_year,sale_month,total_sales,LAG(total_sales, 12) OVER (ORDER BY sale_year, sale_month) AS prev_year_sales, -- 去年同月销售额LAG(total_sales, 1) OVER (ORDER BY sale_year, sale_month) AS prev_month_sales -- 上月销售额FROM MonthlySales
)
SELECTROUND(total_sales) AS 销售额, -- 四舍五入到整数TO_CHAR(CASEWHEN prev_year_sales IS NOT NULL AND prev_year_sales <> 0 THEN(total_sales - prev_year_sales) / prev_year_sales * 100ELSENULLEND, '999.99') || '%' AS 同比, -- 同比增长率,保留2位小数百分比TO_CHAR(CASEWHEN prev_month_sales IS NOT NULL AND prev_month_sales <> 0 THEN(total_sales - prev_month_sales) / prev_month_sales * 100ELSENULLEND, '999.99') || '%' AS 环比 -- 环比增长率,保留2位小数百分比
FROM CTE
WHERE sale_year = '2020' AND sale_month = '09'; -- 只查询2020年9月的数据
解析
实操题
WITH RankedResults AS (SELECTemployee_id,employee_name,statistics,sql_score,python,data_visualization,mathematics,exam_date,(statistics + sql_score + python + data_visualization + mathematics) AS total_score,CASEWHEN statistics >= 60 AND sql_score >= 60 AND python >= 60 AND data_visualization >= 60 AND total_score >= 300 THEN 'pass'ELSE 'fail'END AS final_result,ROW_NUMBER() OVER (PARTITION BY employee_id, final_result ORDER BY total_score DESC) AS rnFROM exam_results
)
SELECTemployee_id AS 员工ID,employee_name AS 人员姓名,statistics AS statistics得分,sql_score AS SQL得分,python AS python得分,data_visualization AS data_visualization得分,mathematics AS mathematics得分,total_score AS 总分,exam_date AS 考核时间,final_result AS 最终考核结果
FROM RankedResults
WHERE rn = 1 -- 取每个员工通过或未通过中总分最高的记录
ORDER BY employee_id;
填空题
解析
实操题
SELECT ec.COUNTRY AS 国家,ep.PRODUCTID AS 产品ID,ep.PRODUCTNAME AS 产品名称,SUM(ep.PRICE * eo.SALE_AMOUNT) AS 销售金额
FROM e_product ep
LEFT JOIN e_order eo ON ep.PRODUCTID = eo.PRODUCTID
LEFT JOIN e_customer ec ON eo.CUSTOMID = ec.CUSTOMID
WHERE SUBSTR(eo.ZTIME, 1, 7) = '2020-09'AND ec.COUNTRY IN ('法国', '英国')
GROUP BY ec.COUNTRY, ep.PRODUCTID, ep.PRODUCTNAME
ORDER BY ec.COUNTRY, ep.PRODUCTID;
填空题
SELECT ep.PRODUCTNAME AS 产品名称,ROUND(SUM(ep.PRICE * eo.SALE_AMOUNT)) AS 销售金额
FROM e_customer ec
JOIN e_order eo ON ec.CUSTOMID = eo.CUSTOMID
JOIN e_product ep ON eo.PRODUCTID = ep.PRODUCTID
WHERE ec.COUNTRY = '英国'AND TO_CHAR(eo.ZTIME, 'YYYY-MM') = '2020-09'
GROUP BY ep.PRODUCTNAME
ORDER BY SUM(ep.PRICE * eo.SALE_AMOUNT) DESC
FETCH FIRST 1 ROW ONLY;
SELECT DATE(t1.register_time_bj) AS stat_date, -- 将登录时间转换为日期格式,作为统计日期t1.channel, -- 用户登录的渠道COUNT(DISTINCT CASE WHEN t2.credit_submit_time_local BETWEEN t1.register_time_bj AND DATE_ADD(t1.register_time_bj, INTERVAL 3 DAY) THEN t1.uid END) AS credit_submit_cnt, -- 计算在用户登录后3天内提交授信申请的用户数量COUNT(DISTINCT CASE WHEN t2.credit_submit_time_local BETWEEN t1.register_time_bj AND DATE_ADD(t1.register_time_bj, INTERVAL 3 DAY) AND t2.credit_status = 'success' THEN t1.uid END) AS credit_succ_cnt -- 计算在用户登录后3天内成功授信的用户数量
FROM table_register t1
LEFT JOIN table_credit t2 ON t1.uid = t2.uid -- 通过用户ID连接两个表
WHERE DATE(t1.register_time_bj) >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) -- 筛选最近一个月的数据
GROUP BY DATE(t1.register_time_bj), t1.channel -- 按日期和渠道聚合
ORDER BY stat_date, t1.channel; -- 按日期和渠道排序
. 确定数据来源和字段
用户登录表(table_register):包含用户ID(uid)、登录时间(register_time_bj)、渠道(channel)。
用户授信表(table_credit):包含用户ID(uid)、授信申请时间(credit_submit_time_local)、授信状态(credit_status)。
2. 确定时间范围
使用DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)来获取当前日期前一个月的日期,确保只统计最近一个月的数据。
3. 连接两个表
使用LEFT JOIN连接table_register和table_credit表,通过uid字段连接。这样可以确保即使某些用户没有授信记录,也能在结果中显示他们的登录信息。
4. 筛选符合条件的记录
使用WHERE子句筛选出登录时间在最近一个月内的记录。
5. 计算授信申请和成功授信的用户数量
使用COUNT(DISTINCT CASE WHEN ... THEN ... END)结构来计算:
授信申请用户数量(credit_submit_cnt):计算在用户登录后3天内提交授信申请的用户数量。
成功授信用户数量(credit_succ_cnt):计算在用户登录后3天内成功授信的用户数量。
6. 聚合和排序结果
使用GROUP BY子句按日期和渠道对结果进行聚合。
使用ORDER BY子句按日期和渠道对结果进行排序。
相关文章:
沐数科技数据开发岗笔试题2025
描述性统计 标准差 答案: A 解析: 标准差 衡量数据集中数值变化或离散程度的一种度量。它反映了数据集中的各个数值与数据集的平均值(均值)之间的偏离程度。标准差越大,表明数据的分布越分散;标准差越小,表明数据…...
什么是 HTML?
HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言: HyperText Markup LanguageHTML 不是一种编程语言,而是一种标记语言标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页HTML 文档包含了HTML 标签及文本内容HTML文档也叫做 web 页面 HT…...
coding ability 展开第四幕(滑动指针——巩固篇)超详细!!!!
文章目录 前言水果成篮思路 找到字符串中所有字母异位词思路 串联所有单词的子串思路 最小覆盖子串思路 总结 前言 本专栏上一篇博客,带着大家从认识滑动窗口到慢慢熟悉 相信大家对滑动窗口已经有了大概的认识 其实主要就是抓住——一段连续的区间 今天来学习一些滑…...
【Linux我做主】基础命令完全指南上篇
Linux基础命令完全指南【上篇】 Linux基础命令完全指南github地址前言命令行操作的引入Linux文件系统树形结构的根文件系统绝对路径和相对路径适用场景Linux目录下的隐藏文件 基本指令目录和文件相关1. ls2. cd和pwdcdpwd 3. touch4. mkdir5. cp6. mv移动目录时覆盖写入的两种特…...
101.在 Vue 3 + OpenLayers 使用 declutter 避免文字标签重叠
1. 前言 在使用 OpenLayers 进行地图开发时,我们经常需要在地图上添加点、线、区域等图形,并给它们附加文字标签。但当地图上的标注较多时,文字标签可能会发生重叠,导致用户无法清晰地查看地图信息。 幸运的是,OpenL…...
面试vue2开发时怎么加载编译速度(webpack)
可以输入命令获取默认 webpack 设置 vue inspect > set.js 1.使用缓存 configureWebpack: {cache: {type: filesystem, // 使用文件系统缓存类型buildDependencies: {config: [__filename] // 缓存依赖,例如webpack配置文件路径}}}, 2.启用 vue-loader (测试明…...
大模型推理后JSON数据后处理
大模型推理后JSON数据后处理 flyfish LLM 通常指的是 Large Language Model,也就是大语言模型,针对 JSON格式的输出,可以在大模型推理前、推理中、推理后进行处理,这里是在推理后进行处理。 针对模型输出结果,可采用结…...
面试总结:2024前端面试题
前几天写了一篇对面试官的吐槽,今天来总结一下最近面试的一些题目。题目不分具体公司了,毕竟题目的重复率不会特别高,就多做准备吧。 技术面还是离不开“八股文”,个人不喜欢也没办法,硬着头皮上,下面分几个…...
剑指 Offer II 083. 没有重复元素集合的全排列
comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20083.%20%E6%B2%A1%E6%9C%89%E9%87%8D%E5%A4%8D%E5%85%83%E7%B4%A0%E9%9B%86%E5%90%88%E7%9A%84%E5%85%A8%E6%8E%92%E5%88%97/README.md 剑指 Offer II 083. 没…...
SFT数据处理部分的思考
SFT数据及处理的业内共识 1.prompt的质量和多样性远重要于数据量级,微调一个 30 b 量级的base model只需要 10 w 量级的数据即可 参考:《LIMA:Less Is More for Alignment》 2.合成数据很重要!一般需要通过…...
c++三级(枚举问题)
菲波那契数列(2) 题目描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。 给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。 输入格式 第1行是测试数据的组数n,后面跟着n行…...
vb编程有哪些相关的IDE开发工具vb.net,Basic语言?
在编程领域,VB 系列拥有丰富多样的 IDE 开发工具,为不同需求的开发者提供了广泛的选择,以下为你详细介绍: 兼容 VB6 源码的开发工具 twinbasic:属于 VB7 系列,它几乎能 100% 兼容 VB6 源码,这…...
XSS跨站脚本攻击
1、什么是XSS攻击 XSS全称(Cross Site Scripting)跨站脚本攻击,为了避免与css层叠样式表名称冲突,所以改为xss,是最常见的web应用程序安全漏洞之一。它指的是恶意攻击者往web页面里插入恶意html代码(JavaS…...
Uniapp 开发 App 端上架用户隐私协议实现指南
文章目录 引言一、为什么需要用户隐私协议?二、Uniapp 中实现用户隐私协议的步骤2.1 编写隐私协议内容2.2 在 Uniapp 中集成隐私协议2.3 DCloud数据采集说明2.4 配置方式3.1 Apple App Store3.2 Google Play Store 四、常见问题与解决方案4.1 隐私协议内容不完整4.2…...
mapbox高阶,结合threejs(threebox)添加extrusion挤出几何体,并添加侧面窗户贴图和楼顶贴图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️threebox extrusion挤出几何体二、🍀…...
【Pycharm】Pycharm无法复制粘贴,提示系统剪贴板不可用
我也没有用vim的插件,检查了本地和ubutnu上都没有。区别是我是远程到ubutnu的pycharm,我本地直接控制windowes的pycharm是没问题的。现象是可以从外部复制到pycharm反之则不行。 ctl c ctlv 以及右键 都不行 参考:Pycharm无法复制粘贴&…...
Java泛型程序设计使用方法
Java泛型程序设计是Java语言中一项强大的特性,它允许你编写更加通用和类型安全的代码。以下是Java泛型程序设计的使用方法和技巧: 1. 基本概念 泛型类:可以定义一个类,其中的某些类型是参数化的。 public class Box<T> {pr…...
【STM32】USART串口收发HEX数据包收发文本数据包
有关串口知识参考:【STM32】USART串口协议&串口外设-学习笔记-CSDN博客 HEX模式/十六进制模式/二进制模式:以原始数据的形式显示文本模式/字符模式:以原始数据编码后的形式显示 参考上面文章查看ASCII编码表 HEX数据包 包头包尾和…...
Keil5下载教程及安装教程(附安装包)
文章目录 前言一、Keil5下载教程二、Keil5安装教程三、Keil5授权教程 前言 本教程详细的介绍了Keil5下载教程及安装教程,就像搭积木一样简单易懂,让你轻松迈出开发的第一步。 一、Keil5下载教程 相比旧版本,Keil MDK v5.40 有显著升级。新增…...
快速上手网络通信 -- Qt Network应用开发
概述 在现代应用程序开发中,网络通信是不可或缺的一部分,无论是客户端与服务器之间的数据交换,还是设备间的通信,都需要一个高效且可靠的网络库。Qt提供了强大的QT Network模块,支持多种网络协议和操作,如HTTP、FTP、TCP/IP等,本文将详细介绍如何使用Qt Network模块进行…...
Linux-进程概念
本节学习重点: • 认识冯诺依曼系统 • 操作系统概念与定位 • 深⼊理解进程概念,了解PCB • 学习进程状态,学会创建进程,掌握僵⼫进程和孤⼉进程,及其形成原因和危害 • 了解进程调度,Linux进程优先级&am…...
【LeetCode】622、设计循环队列
【LeetCode】622、设计循环队列 文章目录 一、数组实现循环队列1.1 队列 二、多语言解法 一、数组实现循环队列 1.1 队列 注意:题目要求了 Front() 和 Rear(),当 IsEmpty() 时返回 -1 // go type MyCircularQueue struct {l intr intlen intcap intar…...
基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统源码+运行
功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。源码 功能包括:医生管理、科室管理、护士管理、住院管理、药品管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.com/geee…...
2023南京理工大学计算机复试上机真题
2023南京理工大学计算机复试上机真题 2023南京理工大学计算机复试机试真题 历年南京理工大学计算机复试上机真题 在线评测:传送门:pgcode.cn 括号匹配二 题目描述 苗苗今天刚刚学会使用括号,不过他分不清小括号,中括号&#…...
开发、科研、日常办公工具汇总(自用,持续更新)
主要记录汇总一下自己平常会用到的网站工具,方便查阅。 update:2025/2/11(开发网站补一下) update:2025/2/21(补充一些AI工具,刚好在做AI视频相关工作) update:2025/3/7&…...
python3GUI--模仿安卓桌面 By:PyQt5(附下载地址)
文章目录 一.前言二.展示1.主界面2.设置页面3.更换了壁纸且切换桌面页面 三.项目分享1.项目代码结构2.组件代码分享 四.总结 文件大小25.5M,欢迎下载体验!点击下载 一.前言 今天给大家推荐我用…...
STM32CubeIDE 下载与安装教程(以 1.18.0 版本为例)
STM32CubeIDE 下载与安装教程(以 1.18.0 版本为例) 软件介绍 STM32CubeIDE 是 STMicroelectronics 提供的官方集成开发环境(IDE),专为 STM32 微控制器系列设计。它融合了 STM32CubeMX 和 Eclipse 的强大功能…...
酒店宾馆IPTV数字电视系统:创新宾客体验,引领智慧服务新潮流
酒店宾馆IPTV数字电视系统:创新宾客体验,引领智慧服务新潮流 北京海特伟业科技有限公司任洪卓于2025年3月15日发布 随着智慧酒店的不断发展,宾客对于酒店内的娱乐和信息服务需求日益多样化,传统的电视服务已难以满足现代宾客的高…...
蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
一、0握手问题 - 蓝桥云课 算法代码: #include <iostream> using namespace std; int main() {int sum0;for(int i49;i>7;i--)sumi;cout<<sum<<endl;return 0; } 直接暴力,题意很清晰,累加即可。 二、0小球反弹 - 蓝…...
MobileNet家族:从v1到v4的架构演进与发展历程
MobileNet 是一个专为移动设备和嵌入式系统设计的轻量化卷积神经网络(CNN)家族,旨在在资源受限的环境中实现高效的图像分类、对象检测和语义分割等任务。自 2017 年首次推出以来,MobileNet 经历了从 v1 到 v4 的多次迭代ÿ…...
PyTorch PINN实战:用深度学习求解微分方程
在人工智能与计算数学的交汇点,物理信息神经网络(Physics-Informed Neural Networks,PINN)正引领着一场求解微分方程的革命。传统上,微分方程是描述自然现象和工程问题中各种关系的重要工具,但其求解往往依…...
LRU(最近最少使用)算法实现
核心思想与基本思路 LRU(Least Recently Used)算法是一种缓存淘汰策略,其核心思想是淘汰最近最少使用的数据。 最近使用原则:最近被访问的数据在未来被访问的概率更高,因此应保留在缓存中。淘汰机制:当缓…...
【大模型实战】利用ms-swift微调框架对QwQ-32B推理模型进行微调
1. 背景介绍 之前我们在《大模型训练/微调的一些经验分享》、《利用DeepSeek-R1数据微调蒸馏ChatGLM32B让大模型具备思考能力》中做了相关模型微调的介绍。目前在基座大模型能力还没有达到足够牛的情况下,大模型微调在商业化、垂直领域应用依然是不可或缺࿰…...
蓝桥杯省赛真题C++B组-小球反弹
一、题目 有一长方形,长为 343720 单位长度,宽为 233333 单位长度。在其内部左上角顶点有一小球(无视其体积),其初速度如图所示且保持运动速率不变,分解到长宽两个方向上的速率之比为 dx:dy 15:17。小球碰到长方形的边框时会发生…...
Web3到底解决了什么问题?
文章目录 Web3到底解决了什么问题?1. 数据所有权与控制权的转移2. 打破中心化平台的垄断3. 信任与透明度的重构4. 价值分配机制的革新5. 互操作性与开放生态6.Web3 的局限性(附加说明) Web3到底解决了什么问题? 1. 数据所有权与控制权的转移 问题&am…...
基于CSV构建轻量级数据库:SQL与Excel操作的双模实践
基于CSV构建轻量级数据库:SQL与Excel操作的双模实践 引言:当CSV遇到SQL和Excel CSV(逗号分隔值)作为最通用的数据存储格式之一,凭借其纯文本可读性和跨平台兼容性,被广泛应用于数据交换和简单存储场景。但…...
【深度学习】多源物料融合算法(一):量纲对齐常见方法
目录 一、引言 二、量纲对齐常见方法 2.1 Z-score标准化Sigmoid归一化 2.2 Min-Max 归一化 2.3 Rank Transformation 2.4 Log Transformation 2.5 Robust Scaling 3、总结 一、引言 类似抖音、快手、小红书等产品的信息流推荐业务,主要通过信息流广告、信…...
STM32-SPI通信外设
目录 一:SPI外设简介 SPI框图编辑 SPI逻辑 编辑 主模式全双工连续传输 编辑 非连续传输 二:硬件SPI读写W25Q64 1.接线: 2. 代码 SPI外设的初始化 生成时序 一:SPI外设简介 STM32内部集成了硬件SPI收发电路&#…...
告别XML模板的繁琐!Word文档导出,easy!
word模板导出 最近项目中有个功能,导出月报,发现同事使用了docx格式模板,感觉比之前转成xml的简单多了,这边记录下使用方法。 xml方式导出word,模板太复杂了 资料 poi-tl 一个基于Apache POI的Word模板引擎,也是一个免费开源的Jav…...
LeetCode 3280 将日期转换为二进制表示
【算法实战】日期转二进制:两种解法的思路与优化(附代码解析) 一、问题描述 给定一个yyyy-mm-dd格式的日期字符串,要求将年、月、日分别转为无前导零的二进制,并保持year-month-day格式。 示例:输入2025-…...
基于SpringBoot的“考研互助平台”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“考研互助平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统整体功能图 局部E-R图 系统首页界面 系统注册…...
在线Doc/Docx转换为PDF格式 超快速转换的一款办公软件 文档快速转换 在线转换免费转换办公软件
小白工具https://www.xiaobaitool.net/files/word-pdf/提供了一项非常实用的在线服务——将Doc或Docx格式的文档快速转换为PDF格式。这项服务不仅操作简单,而且转换效率高,非常适合需要频繁处理文档转换的用户。 服务特点: 批量转换&#x…...
3.14-进程间通信
进程间通信 IPC 进程间通信的原理,借助进程之间使用同一个内核,借助内核,传递数据。 进程间通信的方法 管道:最简单。信号:开销小。mmap映射:速度最快,非血缘关系之间。socket(本…...
大模型AI多智能体系统(Multi-Agent Systems, MAS)技术介绍
一、多智能体系统的定义与核心概念 多智能体系统(MAS)是由多个具备自主决策能力的智能体(Agent)组成的分布式系统。每个智能体能够感知环境、执行动作,并通过协作或竞争实现个体或集体目标。其核心特征包括: 自主性:智能体无需外部指令即可独立决策(如MetaGPT中的角色…...
web3区块链
Web3 是指下一代互联网,也被称为“去中心化互联网”或“区块链互联网”。它是基于区块链技术构建的,旨在创建一个更加开放、透明和用户主导的网络生态系统。以下是关于 Web3 的一些关键点: ### 1. **核心概念** - **去中心化**࿱…...
Alembic 实战指南:快速入门到FastAPI 集成
一、快速开始 1.1 简介 Alembic 是一个基于 SQLAlchemy 的数据库迁移工具,主要用于管理数据库模式(Schema)的变更,例如新增表、修改字段、删除索引等,确保数据库结构与应用程序的 ORM 模型保持一致。 Alembic 通过版…...
【视频】V4L2、ffmpeg、OpenCV中对YUV的定义
1、常见的YUV格式 1.1 YUV420 每像素16位 IMC1:YYYYYYYY VV-- UU– IMC3:YYYYYYYY UU-- VV– 每像素12位 I420: YYYYYYYY UU VV =>YUV420P YV12: YYYYYYYY VV UU =>YUV420P NV12: YYYYYYYY UV UV =>YUV420SP(最受欢迎格式) NV21: YYYYYYYY VU VU =>YUV420SP…...
ubuntu20.04装nv驱动的一些坑
**1.一定要去bios里面关闭secure boot,否则驱动程序需要签名,安装了的驱动无法被识别加载 2.假如没有关闭secure boot然后装了驱动,然后再去关闭secure boot,可能会导致进入不了ubuntu的情况 此时,先恢复secure boot&…...
【SpringMVC】常用注解:@SessionAttributes
1.作用 用于多次执行控制器方法间的参数共享 2.属性 value:用于指定存入的属性名称 type:用于指定存入的数据类型 3.示例 先写JSP代码 <a href"demo1/putMethod">存入 SessionAttribute</a><br><a href"demo…...
阿里云企业邮箱出现故障怎么处理?
阿里云企业邮箱出现故障怎么处理? 以下是处理阿里云企业邮箱故障的详细分步指南,帮助您快速定位问题并恢复邮箱正常使用: 一、初步排查:确认故障范围与现象 确定影响范围 全体用户无法使用 → 可能为阿里云服务端故障或网络中断。…...