【MySQL】GROUP BY 后面直接使用数字的写法(简写)

力扣题

1、题目地址

1699. 两人之间的通话次数

2、模拟表

表:Calls

Column NameType
from_idint
to_idint
durationint
  • 该表没有主键(具有唯一值的列),它可能包含重复项。
  • 该表包含 from_id 与 to_id 间的一次电话的时长。
  • from_id != to_id

3、要求

编写解决方案,统计每一对用户 (person1, person2) 之间的通话次数和通话总时长,其中 person1 < person2 。

以 任意顺序 返回结果表。

返回结果格式如下示例所示。

示例 1:

输入:

Calls 表:

from_idto_idduration
1259
2111
1320
34100
34200
34200
43499

输出:

person1person2call_counttotal_duration
12270
13120
344999

解释:
用户 1 和 2 打过 2 次电话,总时长为 70 (59 + 11)。
用户 1 和 3 打过 1 次电话,总时长为 20。
用户 3 和 4 打过 4 次电话,总时长为 999 (100 + 200 + 200 + 499)。

4、代码编写

分组使用原代码(非别名)

SELECT IF(from_id < to_id, from_id, to_id) AS person1, IF(to_id > from_id, to_id, from_id) AS person2,COUNT(*) AS call_count, SUM(duration) AS total_duration
FROM Calls
GROUP BY IF(from_id < to_id, from_id, to_id), IF(to_id > from_id, to_id, from_id)

分组使用别名

SELECT IF(from_id < to_id, from_id, to_id) AS person1, IF(to_id > from_id, to_id, from_id) AS person2,COUNT(*) AS call_count, SUM(duration) AS total_duration
FROM Calls
GROUP BY person1, person2

分组使用数字(对应原代码查询位置,1开始递增)

SELECT IF(from_id < to_id, from_id, to_id) AS person1, IF(to_id > from_id, to_id, from_id) AS person2,COUNT(*) AS call_count, SUM(duration) AS total_duration
FROM Calls
GROUP BY 1, 2
SELECT COUNT(*) AS call_count, SUM(duration) AS total_duration,IF(from_id < to_id, from_id, to_id) AS person1, IF(to_id > from_id, to_id, from_id) AS person2
FROM Calls
GROUP BY 3, 4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux磁盘总结

什么是page_cache linux读写磁盘&#xff0c;如果都是采用directIO的话&#xff0c;效率太低&#xff0c;所以我们在读写磁盘上加了一层缓存&#xff0c;page_cache。读的话&#xff0c;如果page_cache有的话&#xff0c;就不用向磁盘发出请求。写的话&#xff0c;也直接写入的…

C# 使用多线程,关闭窗体时,退出所有线程

this.Close(); 只是关闭当前窗口&#xff0c;若不是主窗体的话&#xff0c;是无法退出程序的&#xff0c;另外若有托管线程&#xff08;非主线程&#xff09;&#xff0c;也无法干净地退出&#xff1b;Application.Exit(); 强制所有消息中止&#xff0c;退出所有的窗体&…

移动神器RAX3000M路由器不刷固件变身家庭云之六(高级应用):设置https

本系列文章&#xff1a; 移动神器RAX3000M路由器变身家庭云之一&#xff1a;开通SSH&#xff0c;安装新软件包 移动神器RAX3000M路由器变身家庭云之二&#xff1a;安装vsftpd 移动神器RAX3000M路由器变身家庭云之三&#xff1a;外网访问家庭云 移动神器RAX3000M路由器变身家庭云…

nginx和CDN应用

一、代理的工作机制 1&#xff0e;代替客户机向网站请求数据&#xff0c;从而可以隐藏用户的真实IP地址。 2&#xff0e;将获得的网页数据&#xff08;静态 Web 元素&#xff09;保存到缓存中并发送给客户机&#xff0c;以便下次请求相同的数据时快速响应。 二、代理服务器的…

Kali安装Xrdp结合内网穿透实现无公网ip远程访问系统桌面

文章目录 前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于&#xff0c;它允许用户从远程位置访问Kali系统&#xff0c;而无需直接物理访…

【C语言】计算水仙花数

水仙花数&#xff0c;也被称为阿姆斯特朗数&#xff0c;是指一个 n 位数 (n≥3)&#xff0c;它的每个位上的数字的 n 次幂之和等于它本身。例如&#xff0c;153 是一个水仙花数&#xff0c;因为 1^3 5^3 3^3 153。 代码&#xff1a; /* 计算100 - 999 之间的水仙花数 */#in…

vscode在node环境中如何调试

1.在vscode编辑器中&#xff0c;点击左侧的小图标。创建launch.js文件&#xff08;这个文件创建好以后会在项目的.vscode文件下&#xff09; 配置文件内容如下&#xff0c;我们只需要关注program字段&#xff0c;这是入口文件&#xff0c;写绝对路径就行 {// 使用 IntelliS…

用Swift库写爬虫采集统计局公开数据

国家统计局公开的信息还是比较真实准确的&#xff0c;他可以给一个行业带来一些参考性意见。因此&#xff0c;有公司找上我&#xff0c;让我爬取一些行业数据&#xff0c;因为是老客户了也就没推辞&#xff0c;但是因为最近也比较忙&#xff0c;也就利用晚上时间加个班搞下。 首…

Python学习从0到1 day1 你好 Python

我会在那腥臭腐朽的日子里熠熠生辉 ——24.1.11 1.第一个Python程序 安装python程序,输出第一个程序:你好,世界 print("Hello World"); 2.Python解释器 python解释器,是一个计算机程序,用来翻译python代码,并提交给计算机执行 功能:1.翻译代码 2.提交给计算机…

自动化测试框架搭建

思想&#xff1a; 1、基本目录的搭建 report:静态输出目录(报告或者日志) data&#xff1a;静态输入目录(可以存放Excel数据&#xff0c;被读取的一些数据) utils:实用方法层(这里存放的是项目的公共方法&#xff0c;一般拿到别…

Nginx学习

在Nginx配置中&#xff0c;以$符号开头的变量通常是内置变量或者从请求上下文中提取的变量。这些变量用于获取请求的各种信息&#xff0c;例如请求头、URI等。以下是一些常见的以$符号开头的变量&#xff1a; $uri&#xff1a;请求中的URI&#xff08;不包括查询字符串&#x…

汽车产线设备CAN总线一键刷写方案

汽车产线设备CAN总线一键刷写方案 一、概述 随着汽车工业的不断发展&#xff0c;CAN总线技术在汽车产线设备中得到了广泛应用。然而&#xff0c;在实际生产过程中&#xff0c;设备的软件升级和配置更改是不可避免的。为了提高生产效率&#xff0c;我们推出了一键刷写CAN总线解…

初识QT。

文章目录 前言一、QWidget1、了解内容main文件中的基本内容。.pro项目文件的内容。mywidget.h文件内容。命名规范和快捷键Qt助手 2、button按钮3、对象树4、信号和槽5、自定义信号和槽函数拓展 6、Lambda表达式7、练习 二、QMainWindow1、菜单栏和菜单项2、工具栏3、状态栏4、铆…

UKP3d和AutoPDMS管道出图线宽的设置

杭州的一家用户A截轴测图在群里&#xff0c;不料被杭州另一家细心的用户B捕捉到了&#xff0c;B带着疑惑&#xff0c;不相信的口吻问到&#xff1a;“优易抽出来的轴测图吗&#xff1f;我的单线图线很细&#xff0c;这个是怎么设置的&#xff1f;” 可惜&#xff0c;杭州用户A回…

SpringBoot 启动流程

一、SpringBoot 启动流程主要可以概括为以下几个步骤&#xff1a; 加载启动类 当 SpringBoot 项目启动时&#xff0c;会在当前工作目录下寻找有SpringBootApplication注解标识的类&#xff0c;并把这个类作为应用程序的入口点。如果找不到这样的主类&#xff0c;则会打印错误信…

Macos下修改Python版本

MacOS下修改Python版本 安装 查看本机已安装的Python版本&#xff1a;where python3 ~ where python3 /usr/bin/python3 /usr/local/bin/python3 /Library/Frameworks/Python.framework/Versions/3.12/bin/python3如果没有你想要的版本&#xff0c;去python官网下载安装包。…

科技云报道:“存算一体”是大模型AI芯片的破局关键?

科技云报道原创。 在AI发展历史上&#xff0c;曾有两次“圣杯时刻”。 第一次发生在2012年10月&#xff0c;卷积神经网络&#xff08;CNN&#xff09;算法凭借比人眼识别更低的错误率&#xff0c;打开了计算机视觉的应用盛世。 第二次是2016年3月&#xff0c;DeepMind研发的…

解决Java调用Python代码返回中文乱码问题

解决Java调用Python代码返回中文乱码问题 一、乱码原因分析 在Java调用Python代码执行时遇到乱码&#xff0c;我们的第一反应可能是检查文件编码设置是否一致。但在本例中&#xff0c;无论是Java还是Python&#xff0c;编码格式均已设为“UTF-8”&#xff0c;因此排除了编码不…

SSRF扫描工具汇总记录

目录 漏洞简单描述 常出现的位置 工具介绍 SSRFmap 介绍 输入参数

无公网ip如何随时随地远程查看本地群晖NAS存储的文件资源

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…