网站首页 > 教程分享 正文
2022-12-11:行程和用户。以下为输出结果,请问sql语句如何写?
+------------+-------------------+
| Day | Cancellation Rate |
+------------+-------------------+
| 2013-10-01 | 0.33 |
| 2013-10-02 | 0.00 |
| 2013-10-03 | 0.50 |
+------------+-------------------+
DROP TABLE IF EXISTS `trips`;
CREATE TABLE `trips` (
`id` int(11) NOT NULL,
`client_id` int(11) NOT NULL,
`driver_id` int(11) NOT NULL,
`city_id` int(11) NOT NULL,
`status` enum('cancelled_by_client','cancelled_by_driver','completed') NOT NULL,
`request_at` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `trips` VALUES ('1', '1', '10', '1', 'completed', '2013-10-01');
INSERT INTO `trips` VALUES ('2', '2', '11', '1', 'cancelled_by_driver', '2013-10-01');
INSERT INTO `trips` VALUES ('3', '3', '12', '6', 'completed', '2013-10-01');
INSERT INTO `trips` VALUES ('4', '4', '13', '6', 'cancelled_by_client', '2013-10-01');
INSERT INTO `trips` VALUES ('5', '1', '10', '1', 'completed', '2013-10-02');
INSERT INTO `trips` VALUES ('6', '2', '11', '6', 'completed', '2013-10-02');
INSERT INTO `trips` VALUES ('7', '3', '12', '6', 'completed', '2013-10-02');
INSERT INTO `trips` VALUES ('8', '2', '12', '12', 'completed', '2013-10-03');
INSERT INTO `trips` VALUES ('9', '3', '10', '12', 'completed', '2013-10-03');
INSERT INTO `trips` VALUES ('10', '4', '13', '12', 'cancelled_by_driver', '2013-10-03');
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`users_id` int(11) NOT NULL,
`banned` enum('No','Yes') NOT NULL,
`role` enum('partner','driver','client') NOT NULL,
PRIMARY KEY (`users_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `users` VALUES ('1', 'No', 'client');
INSERT INTO `users` VALUES ('2', 'Yes', 'client');
INSERT INTO `users` VALUES ('3', 'No', 'client');
INSERT INTO `users` VALUES ('4', 'No', 'client');
INSERT INTO `users` VALUES ('10', 'No', 'driver');
INSERT INTO `users` VALUES ('11', 'No', 'driver');
INSERT INTO `users` VALUES ('12', 'No', 'driver');
INSERT INTO `users` VALUES ('13', 'No', 'driver');
答案2022-12-11:
sql语句如下:
SELECT T.request_at AS `Day`,
ROUND(
SUM(
IF(T.STATUS = 'completed',0,1)
)
/
COUNT(T.STATUS),
2
) AS `Cancellation Rate`
FROM trips AS T
WHERE
T.Client_Id NOT IN (
SELECT users_id
FROM users
WHERE banned = 'Yes'
)
AND
T.Driver_Id NOT IN (
SELECT users_id
FROM users
WHERE banned = 'Yes'
)
AND T.request_at BETWEEN '2013-10-01' AND '2013-10-03'
GROUP BY T.request_at
猜你喜欢
- 2024-09-09 SQL Server优化50法(sql server 优化)
- 2024-09-09 SQLServer-高级篇(sqlserver ag)
- 2024-09-09 2022-12-17:订单最多的客户。以下数据,结果输出3。请问sql语句
- 2024-09-09 springboot整合mybatis使用xml实现sql语句的查询配置
- 2024-09-09 Qt的数据库(Driver类、Query类、Model类、View类)
- 2024-09-09 VBA+ADO+SQL语句,小试牛刀。(vba的sql)
- 2024-09-09 MS SQL Server——SQL语句导入导出大全
- 2024-09-09 mysql根据条件执行sql(mysql根据条件查询)
- 2024-09-09 MyBatis3-动态SQL语句(navicat怎么写sql语句)
- 2024-09-09 SQL优化——IN和EXISTS谁的效率更高
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)