当前位置: 首页 > news >正文

MySQL -- SQL笔试题相关

1.银行代缴花费bank_bill

字段名描述
serno流水号
date交易日期
accno账号
name姓名
amount金额
brno缴费网点
  • serno: 一个 BIGINT UNSIGNED 类型的列,作为主键,且不为空。该列是自动增量的,每次插入新行时,都会自动递增生成一个唯一的值。

  • date: 一个 DATE 类型的列,存储日期信息,不为空。

  • accno: 一个 VARCHAR(100) 类型的列,用于存储账号信息,不为空。

  • name: 一个 VARCHAR(50) 类型的列,用于存储姓名信息,不为空。

  • amount: 一个 DECIMAL(10, 1) 类型的列,用于存储金额信息,不为空。该列的定义表示它可以存储最大 10 位数,其中小数点后有 1 位。

  • brno: 一个 VARCHAR(150) 类型的列,用于存储分行信息,不为空。

建表如下:

CREATE TABLE `bank_bill` (`serno` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`date` date NOT NULL,`accno` varchar(100) NOT NULL,`name` varchar(50) NOT NULL,`amount` decimal(10,1) NOT NULL,`brno` varchar(150) NOT NULL,PRIMARY KEY (`serno`)
) ENGINE=InnoDB AUTO_INCREMENT=10011 DEFAULT CHARSET=utf8

 插入些数据:

INSERT INTO bank_bill (serno, date, accno, name, amount, brno) VALUES
(10001, '2024-05-01', '1234567890', 'zhang', 1000.5, '支行 A'),
(10002, '2024-05-01', '2345678901', 'li', 2000.3, '支行 C'),
(10003, '2024-05-01', '3456789012', 'zhang', 1500.2, '支行 B'),
(10004, '2024-05-01', '4567890123', 'wang', 2500.7, '支行 B'),
(10005, '2024-05-02', '5678901234', 'li', 1800.4, '支行 E'),
(10006, '2024-05-02', '6789012345', 'liu', 2200.9, '支行 B'),
(10007, '2024-05-03', '7890123456', 'luo', 1700.6, '支行 C'),
(10008, '2024-05-03', '8901234567', 'xie', 1900.8, '支行 A'),
(10009, '2024-05-04', '9012345678', 'zhang', 2100.2, '支行 D'),
(10010, '2024-05-04', '0123456789', 'ma', 2400.5, '支行 C');

 

1、统计表中缴费的总笔数和总金额

select count(serno),sum(amount) from bank_bill;

 

2、给出一个sql,按网点和日期统计每个网点每天的营业额,并按照营业额进行倒序排序

 select brno,date,sum(amount) as money from bank_bill group by brno,date order by money desc;

 3.查询每个客户的平均缴费金额:

SELECT name, AVG(amount) AS avg_amount
FROM bank_bill
GROUP BY name;

4.找出最大单笔交易的客户姓名和金额:

SELECT name, amount
FROM bank_bill
WHERE amount = (SELECT MAX(amount) FROM bank_bill);

5.统计每个网点的交易次数和总金额,并按交易次数排序:

SELECT brno, COUNT(*) AS transaction_count, SUM(amount) AS total_amount
FROM bank_bill
GROUP BY brno
ORDER BY transaction_count ASC;

 6.列出交易额在平均交易额之上的所有交易记录:

SELECT *
FROM bank_bill
WHERE amount > (SELECT AVG(amount) FROM bank_bill);

7.按月份统计交易总额和总笔数:

SELECT YEAR(date) AS year, MONTH(date) AS month, SUM(amount) AS total_amount, COUNT(*) AS total_transactions
FROM bank_bill
GROUP BY YEAR(date), MONTH(date);

http://www.lryc.cn/news/358633.html

相关文章:

  • VB6 MQTT为什么在物联网应用中使用 MQTT 而不是 HTTP?
  • 软设之希尔排序
  • WPF Binding对象
  • Educational Codeforces Round 127 D. Insert a Progression
  • 树莓集团:构筑全国数字影像生态链
  • 物联网——TIM定时器、PWM驱动呼吸灯、舵机和直流电机
  • Elasticsearch 认证模拟题 -2
  • Java-----Comparable接口和Comparator接口
  • 通信技术体会
  • Linux系统安全及其应用
  • JVM内存划分类加载的过程双亲委派模型的详解
  • Java异常详解
  • C++入门3——类与对象2(类的6个默认成员函数)
  • CobaltStrike基本渗透
  • 【linux深入剖析】进程间通信
  • 关系数据库:关系模式
  • 医学图像处理质量的评价方法
  • Ehcache Java 缓存框架
  • 详解Spring IoCDI(二)
  • 说明白计算机网络之TCP的流量控制与拥塞控制之慢开始算法与拥塞避免算法
  • 这款信创FTP软件,可实现安全稳定的文件传输
  • 代码随想录算法训练营第十天|232.用栈实现队列、225. 用队列实现栈
  • STM32 IIC协议
  • Java生成随机数的几种方式
  • 【面试】什么是Java虚拟机
  • Go 语言的基本构成、要素与编写规范
  • 从了解到掌握 Spark 计算框架(二)RDD
  • 香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(三)
  • 【git】常用命令
  • JavaWeb_MySQL数据库