我想使用聚合函数更新paneldata
设置列的表ibase
.
UPDATE paneldata p
SET ibase=SUM(1/i.dist)
FROM ibaselang i
WHERE p.gid=i.gid
AND i.instp<p.period
Run Code Online (Sandbox Code Playgroud)
这导致了 ERROR: aggregate functions are not allowed in UPDATE
CREATE TABLE public.ibaselang
(
gid integer,
dist double precision,
buildid integer,
instp smallint
)
WITH (
OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道如何WHERE
在子查询中实现我的函数.
好的,4个小时的编码,只有6个小时的搜索......我并没有比开始时更好.这是我的问题.我有一个表(tmpShell),它有12列.它是一个没有约束的基本表 - 用于临时报告.当我们插入数据时,我必须提取一个ID号(PatientId)和所有列NAMES,其中该PatientId的值为null.
例:
PatientId Fname Lname DOB 123455 Sam NULL NULL
2345455 NULL Doe 1/1/1980
09172349 John Jone NULL
我想要回归的是:
PatientId ErrorMsg 123455 Lname,DOB
2345455 Fname
09172349 DOB
当然,如果所有列都有值,则errormsg将为null.
我已尝试并失败了大约300个不同的代码片段,但这似乎是我能得到的最接近的代码.不幸的是,这只返回每一列,而不是空值.
ALTER PROC [sp_aaShowAllNullColumns]
@tableName VARCHAR(255)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql NVARCHAR(4000);
DECLARE @cols NVARCHAR(4000);
DECLARE @tcols TABLE ( [colbit] NVARCHAR(255) );
--DECLARE @tablename VARCHAR(255) = 'tmpShell';
INSERT @tcols
SELECT
'count(' + [columns].[name] + ') as ' + [columns].[name] + ', ' AS [colbit]
FROM
[sys].[columns]
WHERE
[columns].[object_id] = OBJECT_ID(@tableName);
SELECT
@cols = COALESCE(@cols, ', ', '') + …
Run Code Online (Sandbox Code Playgroud) 请帮助检查以下sql代码中的错误:
select
case when (z.mso_group_id = '3' and z.model_id = '22887081') then coalesce(level_2_id,996) level_2_id
when (z.mso_group_id = '4' and z.model_id = '22911859') then coalesce(level_2_id,997) level_2_id
when (z.mso_group_id = '5' and z.model_id = '22915074') then coalesce(level_2_id,998) level_2_id
when (z.mso_group_id = '2' and z.model_id = '22908275') then coalesce(level_2_id,999) level_2_id
end level_2_id
from
database_name
Run Code Online (Sandbox Code Playgroud) 我遇到了一些奇怪的东西,我无法解释.
我正在使用以下查询:
MERGE INTO Main_Table t
USING Stg_Table s
ON(s.site_id = t.site_id)
WHEN MATCHED THEN
UPDATE SET t.arpu_prev_period = s.arpu_prev_period
.... --50 more columns
where t.period_code = 201612
Run Code Online (Sandbox Code Playgroud)
Stg_Table:索引(Site_Id)
Main_Table:
- 索引(Period_code,Site_id)
- 由period_code分区
- 注 - 我尝试在Site_Id
单独的,相同的执行计划上添加索引.
我期望一个使用单分区扫描的执行计划,但我得到了Partition list all
.
这是执行计划:
6 | 0 | MERGE STATEMENT | |
7 | 1 | MERGE | Main_Table |
8 | 2 | VIEW | |
9 | 3 | HASH JOIN | |
10 | 4 …
Run Code Online (Sandbox Code Playgroud) 我知道这个主题有很多帖子,但我找不到任何完全回答我的问题.
假设我有一个Base类和一个Derived类,我为它实现了CCtor和赋值运算符,如下所示:
class Base {
char * name;
....
Base(const Base& other) :name(nullptr) { *this = other }
void operator=(const Base& other) { ... Deep copy of name }
}
class Derived : public Base {
....
Derived(const Derived& other) { *this = other ; }
void operator=(const Derived& other) {
Base::operator=(other);
.....
}
Run Code Online (Sandbox Code Playgroud)
现在我对这个设计有一些疑问.
编辑:只是为了澄清,设计是我在项目中给出的.我有指针所以我必须使用深层复制.
我的下表中有一些数据
table_1
column_1 column_2
1 10
1 20
1 30
1 40
1 50
2 -10
2 -20
2 -30
2 -40
2 -50
Run Code Online (Sandbox Code Playgroud)
我想将此结果更改为这样的结果
column_1 column_2
1 10
2 -10
1 20
2 -20
1 30
2 -30
1 40
2 -40
1 50
2 -50
Run Code Online (Sandbox Code Playgroud)
我不确定是否有办法使用order by来做到这一点?我想要展示的是我试图将(10,-10)显示为一组数据
我需要很少的MySQL帮助.我有一个每小时值的表:
ID | VALUE | HOUR
1 | 1.0 | 01.00
2 | 1.0 | 02.00
...
24 | 1.0 | 24.00
Run Code Online (Sandbox Code Playgroud)
现在我发现有时我得到的数据不是每小时一次,而是每30分钟或有时每15分钟.所以数据看起来像这样:
ID | VALUE | HOUR
1 | 1.0 | 01.00
2 | 1.0 | 01.30
...
48 | 1.0 | 24.00
Run Code Online (Sandbox Code Playgroud)
我需要以小时格式显示数据,所以我很好奇是否有机会告诉MySQL将每两个(30分钟格式)或每四个(15分钟格式)行的结果相加?
我有这样一张桌子:
i1 i2
----------
1 a
1 b
1 c
1 d
2 x
3 y
4 a
4 b
4 c
Run Code Online (Sandbox Code Playgroud)
我想选择1 c和4 a之间的行.
结果应该是:
1 c
1 d
2 x
3 y
4 a
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
目前我正在尝试从两个日期列中选择一个日期时间列。我有以下情况:
FROMDATE
包含没有时间的日期的列,例如 08-01-2017 00:00:00
FROMTIME
包含没有日期的时间的列,例如 01-01-1899 13:50:00
现在我想在一列中选择两者,例如 SELECT (<what ever>) as FROMDATETIME ...
预期结果:08-01-2017 13:50:00
但我无法提取日期和时间部分并将它们作为 datetime
.
用一种元sql 说:select (date(FROMDATE) + time(FROMTIME)) as FROMDATETIME
.
我已经尝试了很多与TO_CHAR
和TO_DATE
,但没能得到期望的结果。
sql ×9
sql-server ×4
mysql ×2
oracle ×2
c++ ×1
database ×1
date ×1
null ×1
oop ×1
performance ×1
postgresql ×1
t-sql ×1