You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL日志表数据检索:特定时段操作statement查询及限制难题

嘿,我完全懂你卡在「限制需求」这块儿的纠结!先帮你把基础查询捋清楚,再针对几种最常见的限制场景给出具体SQL,你可以对照自己的实际需求来调整~

基础查询:获取指定时间段被操作的Statement

先确认下你已经能实现的基础逻辑,确保咱们起点一致:

SELECT DISTINCT statement_id
FROM operation_logs
WHERE action_date BETWEEN '2018-03-01' AND '2018-03-30';

这里用DISTINCT是为了避免同一个statement被多次操作后重复输出,如果你不需要去重可以直接去掉。

接下来是几种高频的「限制需求」场景,看看是不是你遇到的情况:

场景1:限定操作的用户范围

比如你只想找这段时间里仅被某特定用户操作过的statement,或者要排除被某用户操作的statement:

-- 仅被用户1001操作过的Statement
SELECT statement_id
FROM operation_logs
WHERE action_date BETWEEN '2018-03-01' AND '2018-03-30'
GROUP BY statement_id
HAVING COUNT(DISTINCT user_id) = 1 AND MIN(user_id) = 1001;

-- 排除被用户1002操作过的Statement
SELECT DISTINCT statement_id
FROM operation_logs
WHERE action_date BETWEEN '2018-03-01' AND '2018-03-30'
AND statement_id NOT IN (
    SELECT statement_id
    FROM operation_logs
    WHERE user_id = 1002 AND action_date BETWEEN '2018-03-01' AND '2018-03-30'
);

场景2:限定操作类型

比如只找这段时间里执行过特定操作的statement,或者同时执行过多种操作的statement:

-- 至少执行过DELETE操作的Statement
SELECT DISTINCT statement_id
FROM operation_logs
WHERE action_date BETWEEN '2018-03-01' AND '2018-03-30'
AND action_type = 'DELETE';

-- 同时执行过CREATE和UPDATE操作的Statement
SELECT statement_id
FROM operation_logs
WHERE action_date BETWEEN '2018-03-01' AND '2018-03-30'
AND action_type IN ('CREATE', 'UPDATE')
GROUP BY statement_id
HAVING COUNT(DISTINCT action_type) = 2;

场景3:限定操作次数

比如找这段时间被操作超过N次的statement,或者仅被操作过1次的statement:

-- 操作次数超过5次的Statement(附带次数统计)
SELECT statement_id, COUNT(*) AS total_actions
FROM operation_logs
WHERE action_date BETWEEN '2018-03-01' AND '2018-03-30'
GROUP BY statement_id
HAVING COUNT(*) > 5;

-- 仅被操作过1次的Statement
SELECT statement_id
FROM operation_logs
WHERE action_date BETWEEN '2018-03-01' AND '2018-03-30'
GROUP BY statement_id
HAVING COUNT(*) = 1;

如果这些场景都不是你面临的问题,你可以再补充下具体的限制要求——比如是要排除某些操作组合、和操作时间做更精细的关联,还是其他特殊规则?我再帮你针对性调整SQL语句~

内容的提问来源于stack exchange,提问作者Sates

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:42:22