pgsql查询2022年9-12月已登录且2023年1-5月未登录且in_operator不是DX的数据
时间: 2024-03-11 12:51:39 浏览: 19
您可以使用以下 SQL 查询语句来实现您的需求:
```
SELECT *
FROM your_table
WHERE
extract(year from login_time) = 2022
AND extract(month from login_time) >= 9
AND extract(month from login_time) <= 12
AND NOT EXISTS (
SELECT 1
FROM your_table subquery
WHERE
extract(year from subquery.login_time) = 2023
AND extract(month from subquery.login_time) BETWEEN 1 AND 5
AND subquery.user_id = your_table.user_id
)
AND in_operator != 'DX';
```
其中,`your_table` 是您要查询的表名,`login_time` 是记录用户登录时间的字段名,`in_operator` 是记录用户所属运营商的字段名,`user_id` 是记录用户 ID 的字段名。
这个查询语句会返回在 2022 年 9-12 月份中登录过,但在 2023 年 1-5 月份没有登录过,且所属运营商不是 DX 的数据。查询语句使用了一个子查询来查找用户在 2023 年 1-5 月份的登录记录,如果存在这样的记录,则不会返回该用户。