当前位置: 首页 > 知识库问答 >
问题:

如何创建VIEW女巫组合和筛选来自多行的结果

东方河
2023-03-14

嗨,我有问题,我需要做的任务。我在SQL中有一个表,其中显示了用户日志(子用户)以及添加时间戳、执行的操作和订户名称的触发器,如下所示:

表:audit_subscibers

现在我需要创建一个视图,仅显示已删除删除时间和插入时间的订阅者(名称),以实现这样的事情:

添加了约翰(像其他成员一样),但也删除了beed,而不是触摸只有插入的成员

如何做到这一点,只需要潜意识

我还有另一个类似的任务,但这次我必须创建视图(仅基于audit_subscibers表),我必须只显示仍然存在的订阅者(使用“插入订阅者”获取所有subscrb,但从结果中拒绝包含“删除订阅者”在内的更多行的订阅者)

我真的很想知道答案。。。

共有2个答案

符学
2023-03-14

您必须在保存/更新记录的表中再添加一列(如delete_time)。您的操作已保存在“操作”列下,在执行“删除记录”时,您将更新同一列(删除时间)。

谢谢

梅逸清
2023-03-14

也许这可以给你一个提示或帮助:

CREATE TABLE  audit_subscibers (
 id int ,
 name varchar(30),
 action varchar(60),
 time date );

INSERT INTO audit_subscibers VALUES
(0,'John','Insert a subscriber','2020-01-01'),
(1,'John','Deleted a subscriber','2020-03-01'),
(2,'Mark','Insert a subscriber','2020-04-05'),
(3,'Andrew','Insert a subscriber','2020-05-01'),
(4,'Andrew','Updated a subscriber','2020-05-15');




SELECT name,
       MAX(case when action='Insert a subscriber' then time end) as Date_added,
       MAX(case when action='Deleted a subscriber' then time end) as Date_deleted
FROM    (
SELECT name,time,action
FROM audit_subscibers
WHERE name in (SELECT name  
               FROM audit_subscibers  
               WHERE action in ('Insert a subscriber','Deleted a subscriber') 
               GROUP BY name
               HAVING COUNT(action) = 2 )

) as t1
group by name;  

结果:

name  Date_added  Date_deleted
John  2020-01-01  2020-03-01

演示https://dbfiddle.uk/?rdbms=mysql_8.0

 类似资料:
  • 为了澄清,这与Eratosthenes的问题Sieve-Finding Primes Python不同,因为我不想在两个数字之间生成素数,但我想检查一个数字是否是素数。 我做了下面的代码来确定一个数字是否是素数。然后我听说了埃拉托色尼算法的筛子,它显然更快,但我不知道如何在下面的代码中编写它? 你们能帮帮我吗?

  • 问题内容: 有谁知道用Knockout JS模板创建自动完成组合框的最佳方法吗? 我有以下模板: 有时候,这个清单很长,我想让Knockout在jQuery自动完成功能或一些直接的JavaScript代码方面表现出色,但收效甚微。 另外,jQuery.Autocomplete需要输入字段。有任何想法吗? 问题答案: 这是我编写的jQuery UI自动完成绑定。它的目的是镜像,,,与几个新增的选择要

  • 场景是,对于特定的日期范围,我需要返回字段值已更改(从和到日期)的所有行。更改后的字段值将以不同的颜色显示在屏幕上。 我可以返回特定时间段内发生更改的所有员工记录。但是,如果一个员工的记录在所选时间段内多次更改,我需要返回一个员工记录,并为每个不同的列返回一个组合值。1表示已发生更改,0表示未发生更改。 表DDL为: 模拟数据是: 我的疑问是: 在最后一个查询中,我将添加以下行以返回当前记录。我省

  • 在https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html我们了解到: 以上代码显示了我们如何为t恤添加aggs,但我们如何做到: 和

  • 我有一个对象,如下所示: 我想过滤并创建一个满足任何条件的新数组。例如:过滤器的名称为“AD”,并创建一个新的密钥数组,如下所示: 尝试地图 尝试过了。过滤器: 提前谢谢

  • 问题内容: 我的问题很简单,如何使这段代码变得懒惰: 上面的代码可以计算组合,但是可以在内存中创建整个数组数组。我需要让它返回类似的东西,除了Swift类型系统不允许我做一些通用的事情。 有什么想法如何实现这一目标并保持功能风格吗? 附注:我确实想过用生成器解决这个问题并跟踪索引的另一种方法,但是我不想跟踪任何状态,我想要一个纯函数式(如FP中)的解决方案。Haskell默认情况下会这样做,顺便说