【发布时间】:2019-08-09 09:29:38
【问题描述】:
我有以下数据需要分析,我可以通过代码将数据处理成我需要的结果。但是我想知道我是否可以使用 SQL 来处理我需要的结果。
数据
| id | phoneNum | callType | created |
| --- | ----------- | -------- | ---------------- |
| 1 | 15000000000 | 1 | 2019-08-07 01:02 |
| 2 | 15000000000 | 1 | 2019-08-07 02:03 |
| 3 | 15000000000 | 2 | 2019-08-07 04:05 |
| 4 | 15000000000 | 1 | 2019-08-07 05:07 |
| 5 | 15000000000 | 2 | 2019-08-07 06:07 |
| 6 | 15000000000 | 1 | 2019-08-07 06:20 |
| 7 | 15000000000 | 1 | 2019-08-07 06:30 |
| 8 | 15000000001 | 1 | 2019-08-07 07:07 |
| 9 | 15000000000 | 1 | 2019-08-07 08:07 |
| 10 | 15000000000 | 1 | 2019-08-08 08:07 |
成为
| phoneNum | callType | created | count |
| -------------- | -------- | ---------------- | ----- |
| 15000000000 | 1 | 2019-08-07 02:03 | 2 |
| 15000000000 | 2 | 2019-08-07 04:05 | 1 |
| 15000000000 | 1 | 2019-08-07 05:07 | 1 |
| 15000000000 | 2 | 2019-08-07 06:07 | 1 |
| 15000000000 | 1 | 2019-08-07 06:30 | 2 |
| 15000000001 | 1 | 2019-08-07 07:07 | 1 |
| 15000000000 | 1 | 2019-08-07 08:07 | 1 |
| 15000000000 | 1 | 2019-08-08 08:07 | 1 |
添加使用场合: 想象一下,当一个手机来电时,最后一个电话最终被插入到数据库中。这是数据的数据源。但是,当显示这个数据时,最后一次调用的数据应该显示在第一行。此时,将数据库中的第四行与第三行进行比较。由于来电类型不同,这个时间应该是独立于一条线路的;如果相同,则不进行处理,原始数据加一计数。
【问题讨论】:
-
请解释一下phonenum如何在第3行变成
15000000000(2)? -
你的分组标准是什么?
-
@AnkitBajpai 感谢您的回复。 15000000000(2)表示前两个数据重复,按照callType分组。
-
那为什么第1行和第3行没有组合在一起,那一定是3行呢?
-
@orangeChu 我不知道那个应用程序,具体来说,但我承认它看起来有点奇怪。为什么第 1、2、 和 4 行没有分组?另外,是什么决定了合并行的
created时间戳?
标签: sql sqlite optimization