你能帮我解决一个问题吗。任务是在 MySQL 数据库中插入一条记录。条款:
表 'NETFLOW'.'Month' 中的关键列是:
事情是尽快查询,如果可能的话,在一个查询中。
当前查询的文本是:
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) 我想使用 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) 我有一个带有 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。
那怎么可能呢?
我的困境,
我被要求填充一个样本数据表,我完成了添加日期的命令。
我输入了“07-07-2016”作为示例数据。运行查询时,“date_ordered”字段返回为“0000-00-00”。
我需要将已经存储的数据转换为 MM-DD-YYYY 格式。我更愿意完全转换数据,而不仅仅是视图。
谢谢
mysql ×3
backup ×1
date-format ×1
duplication ×1
insert ×1
order-by ×1
postgresql ×1
select ×1
sql-server ×1
t-sql ×1