当前位置: 首页 > 面试题库 >

删除带有警告的重复项

申屠新觉
2023-03-14
问题内容

我有一个带有rowID,经度,纬度,businessName,url,标题的表。可能看起来像:

rowID | long  | lat |  businessName | url | caption

  1      20     -20     Pizza Hut   yum.com  null

如何删除所有重复项,但仅保留一个具有URL的副本(第一优先级),或者如果另一个不具有URL的标题(第二优先级),则保留具有标题的副本,然后删除其余重复项?


问题答案:

这是我的循环技术。这可能会因为没有成为主流而被否决-我对此很满意。

DECLARE @LoopVar int

DECLARE
  @long int,
  @lat int,
  @businessname varchar(30),
  @winner int

SET @LoopVar = (SELECT MIN(rowID) FROM Locations)

WHILE @LoopVar is not null
BEGIN
  --initialize the variables.
  SELECT 
    @long = null,
    @lat = null,
    @businessname = null,
    @winner = null

  -- load data from the known good row.  
  SELECT
    @long = long,
    @lat = lat,
    @businessname = businessname
  FROM Locations
  WHERE rowID = @LoopVar

  --find the winning row with that data
  SELECT top 1 @Winner = rowID
  FROM Locations
  WHERE @long = long
    AND @lat = lat
    AND @businessname = businessname
  ORDER BY
    CASE WHEN URL is not null THEN 1 ELSE 2 END,
    CASE WHEN Caption is not null THEN 1 ELSE 2 END,
    RowId

  --delete any losers.
  DELETE FROM Locations
  WHERE @long = long
    AND @lat = lat
    AND @businessname = businessname
    AND @winner != rowID

  -- prep the next loop value.
  SET @LoopVar = (SELECT MIN(rowID) FROM Locations WHERE @LoopVar < rowID)
END


 类似资料:
  • 问题内容: 我有一些PHP代码。当我运行它时,出现警告消息。 如何删除/禁止/忽略这些警告消息? 问题答案: 您确实应该修复引起警告的所有内容,但是可以使用来控制错误的可见性。要跳过警告消息,您可以使用以下方法:

  • 在我使用的Python模块中,我希望确保在通过在远程机器上运行脚本时,它也能工作。因此,我: 它起作用了。太糟糕了,当我直接在机器上运行它时(不是远程机器!),它给了我以下警告: 这是对matplotlib的调用。use()无效,因为已经选择了后端;matplotlib。必须在pylab、matplotlib之前调用use()。pyplot或matplotlib。后端是第一次导入的。 如何删除此消

  • 我用django模型在MySql中创建了两个表,一个是学生模型,另一个是出勤模型。 我没有在考勤课上给stu添加“on_delete=models.PROTECT”,因为我需要能够在没有保护警告的情况下删除一个学生对象,如果这个学生在考勤课上被定义为来自学生课的外键。 现在,当我删除一个Students对象时,与foreignkey连接的考勤记录也会被删除。 我想做的事情是,我想删除学生对象没有警

  • 我使用hikaricp作为我的数据库连接池。当我完成我的SQL语句时,我将关闭连接,在连接上调用关闭,我相信您应该将连接代理返回到池。然而,我看到以下警告(不是错误)消息,我不得不怀疑这是否是一个需要解决的问题,因为我没有正确清理我的连接资源。我不是使用资源尝试,而是使用尝试捕获最后(我在最后关闭连接

  • 请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得

  • C:\Users\Admin\anaconda3\lib\site packages\ipykernel\u启动器。py:7:SettingWithCopyWarning:试图在数据帧切片的副本上设置值 请参阅留档中的注意事项:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view