小编Jul*_*eur的帖子

在重复密钥更新时插入 ... (...) (Select...)

你能帮我解决一个问题吗。任务是在 MySQL 数据库中插入一条记录。条款:

  • 如果记录存在 - 更新记录。
  • 如果记录不存在 - 创建一个新的。

表 'NETFLOW'.'Month' 中的关键列是:

  • '年'
  • '月'
  • '日'
  • '小时'
  • '源地址'
  • 'dstaddr'。

事情是尽快查询,如果可能的话,在一个查询中。

当前查询的文本是:

    INSERT INTO `netflow`.`Month` (`Year`, `Month`, `Day`, `Hour`, `srcaddr`,`dstaddr`, `doctets`)
    (
      SELECT 
        YEAR( FROM_UNIXTIME(  `unix_secs` ) ) AS `YEAR`, 
        MONTH( FROM_UNIXTIME(  `unix_secs` ) ) AS `MONTH`, 
        DAYOFMONTH( FROM_UNIXTIME(  `unix_secs` ) ) AS `DAY`, 
        HOUR( FROM_UNIXTIME(  `unix_secs` ) ) AS `HOUR`,  
        `srcaddr` ,  
        `dstaddr` ,  
        `doctets` 
      FROM  `netflow`.`raw` 
        WHERE `unix_secs` <= 1394179200
      GROUP BY 
        `YEAR`, 
        `MONTH`, 
        `DAY`, 
        `HOUR`,
        `srcaddr`,
        `dstaddr`
    )
    ON …
Run Code Online (Sandbox Code Playgroud)

mysql insert duplication select

2
推荐指数
1
解决办法
2万
查看次数

使用 Distinct 和 Sum?

我想使用 case 语句总结一些值。我的问题是编译器会抱怨,如果我没有在查询的末尾添加一个组,这会否定我的 Distinct,哈哈。例如,在我下面的示例中,red12即使 1 个条目不符合上述任何条件,这也会返回 2 个条目,但这让Group By我感到困惑!我怎样才能运行这个查询并只返回适用的结果,即case statements显示什么?

Create Table #Bobsled
(
  [event] varchar(100)
  ,[time] decimal(18,4)
  ,employeeID varchar(25)
  ,name varchar(500)
)

Insert Into #Bobsled Values
('Walk', '16.32','red12', 'red arrow')
,('Eat', '5.12', 'red12', 'red arrow')
,('Run', '32.13','pink01', 'pink pig')
,('Walk', '2.12', 'bl81', 'blue fire')
,('Sleep', '8.12', 'gr99', 'green pony')


Select Distinct
employeeid
,case when [event] = 'Walk' then SUM([time]) else 0 end as walktime
,case when [event] = 'RUN' then SUM([time]) else 0 …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

2
推荐指数
1
解决办法
2318
查看次数

如何检查postgresql备份是否完成?

我昨天开始备份,但现在不知道是否完成。

你能帮我么?

postgresql backup

1
推荐指数
1
解决办法
8718
查看次数

按 x DESC 排序 - 但仅限连续行

我有一个带有 ID(整数)和一个文本字段(名称)的表。我当前的查询如下所示:

SELECT id, name FROM table WHERE id <= X ORDER BY id DESC

X 是我从另一个查询中获得的 ID。这个查询当前所做的是输出低于我输入的 ID 的所有条目,按 ID 排序。

我想要实现的是,这仅在 ID 中的第一个“间隙”之前完成 - 例如,使用这样的表:

id      name
1       Test 1
2       Test 2
3       Test 3
6       Test 6
7       Test 7
8       Test 8
9       Test 9
Run Code Online (Sandbox Code Playgroud)

我想要一个只返回以下集合的查询X = 8

id      name
8       Test 8
7       Test 7
6       Test 6
Run Code Online (Sandbox Code Playgroud)

因为那样的话,ID 之间存在差距(ID 5 丢失),然后我不需要其他较低的 ID。

那怎么可能呢?

mysql order-by

1
推荐指数
1
解决办法
35
查看次数

我需要将“日期”的格式从 yyyy-dd-mm 更改为 mm-dd-yyyy

我的困境,

我被要求填充一个样本数据表,我完成了添加日期的命令。

我输入了“07-07-2016”作为示例数据。运行查询时,“date_ordered”字段返回为“0000-00-00”。

我需要将已经存储的数据转换为 MM-DD-YYYY 格式。我更愿意完全转换数据,而不仅仅是视图。

谢谢

mysql mysql-workbench date-format

-1
推荐指数
1
解决办法
3万
查看次数