pgsql查询9-12月已登录且1-5月未登录
时间: 2024-01-12 09:05:47 浏览: 29
可以使用如下的 SQL 查询语句来实现:
```
SELECT *
FROM your_table
WHERE
(EXTRACT(MONTH FROM login_time) >= 9 AND EXTRACT(MONTH FROM login_time) <= 12)
AND user_id NOT IN (
SELECT user_id
FROM your_table
WHERE EXTRACT(MONTH FROM login_time) >= 1 AND EXTRACT(MONTH FROM login_time) <= 5
)
```
其中 `your_table` 是你存储用户登录信息的表,假设该表中包含字段 `user_id` 和 `login_time`,分别表示用户ID和登录时间。具体而言,该查询语句的意思是:查询9-12月份已经登录的用户,且在1-5月份没有登录过的用户。查询结果会返回符合条件的所有行。
相关问题
pgsql查询9-12月已登录且1-5月未登录且in_operator不为DX
您可以尝试使用以下 PostgreSQL 查询语句实现您的需求:
```
SELECT *
FROM your_table
WHERE
(EXTRACT(MONTH FROM login_time) BETWEEN 9 AND 12) -- 9-12月已登录
AND (EXTRACT(MONTH FROM login_time) NOT BETWEEN 1 AND 5) -- 1-5月未登录
AND in_operator <> 'DX'; -- in_operator 不为 DX
```
请注意,这里的 `your_table` 是您存储用户登录信息的表名,您需要将其替换为您实际使用的表名。同时,如果您的表中包含了用户 ID 等信息,您可以将 `SELECT *` 替换为您需要查询的字段列表。
此外,上述查询语句中使用了 PostgreSQL 内置函数 `EXTRACT`,它可以从时间戳中提取出指定的日期部分(如月份),您需要将其中的 `login_time` 替换为您实际使用的时间戳字段名。
希望对您有所帮助!
pgsql查询9-12月已登录且1-5月未登录且in_operator不是DX的数据
您可以使用以下 SQL 查询语句来实现您的需求:
```
SELECT *
FROM your_table
WHERE
extract(month from login_time) >= 9
AND extract(month from login_time) <= 12
AND extract(month from login_time) NOT IN (1, 2, 3, 4, 5)
AND last_login_time < '2022-01-01'
AND in_operator != 'DX';
```
其中,`your_table` 是您要查询的表名,`login_time` 是记录用户登录时间的字段名,`last_login_time` 是记录用户最后一次登录时间的字段名,`in_operator` 是记录用户所属运营商的字段名。
这个查询语句会返回在 9-12 月份中登录过,但在 1-5 月份没有登录过,且最后一次登录时间早于 2022 年 1 月 1 日,并且所属运营商不是 DX 的数据。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)