小编Rom*_*kar的帖子

sql查询返回两个表之间的差异

我试图比较两个表,SQL Server,以验证一些数据.我想从两个表中返回所有行,其中数据在一个或另一个中.从本质上讲,我想表明所有的差异.我需要检查三个数据,FirstName,LastName和Product.

我对SQL很新,似乎很多我发现的解决方案都让事情变得复杂.我不必担心NULL.

我开始尝试这样的事情:

SELECT DISTINCT [First Name], [Last Name], [Product Name] FROM [Temp Test Data]
WHERE ([First Name] NOT IN (SELECT [First Name] 
FROM [Real Data]))
Run Code Online (Sandbox Code Playgroud)

我在进一步考虑这个问题时遇到了麻烦.

谢谢!

编辑:

根据@treaschf的回答,我一直在尝试使用以下查询的变体:

SELECT td.[First Name], td.[Last Name], td.[Product Name]
FROM [Temp Test Data] td FULL OUTER JOIN [Data] AS d 
ON td.[First Name] = d.[First Name] AND td.[Last Name] = d.[Last Name] 
WHERE (d.[First Name] = NULL) AND (d.[Last Name] = NULL)
Run Code Online (Sandbox Code Playgroud)

但是当我知道td中至少有一行不在d中时,我一直得到0结果.

编辑:

好吧,我想我弄明白了.至少在我测试的几分钟内它似乎工作得很好.

SELECT [First Name], [Last Name]
FROM …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005 sql-server-2008

183
推荐指数
6
解决办法
55万
查看次数

熊猫在每组中获得最高n条记录

假设我有像这样的pandas DataFrame:

>>> df = pd.DataFrame({'id':[1,1,1,2,2,2,2,3,4],'value':[1,2,3,1,2,3,4,1,1]})
>>> df
   id  value
0   1      1
1   1      2
2   1      3
3   2      1
4   2      2
5   2      3
6   2      4
7   3      1
8   4      1
Run Code Online (Sandbox Code Playgroud)

我想为每个id获取一个包含前2条记录的新DataFrame,如下所示:

   id  value
0   1      1
1   1      2
3   2      1
4   2      2
7   3      1
8   4      1
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式在组内编号记录:

>>> dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
>>> dfN
   id  level_1  index  value
0   1        0      0      1
1   1        1      1      2 …
Run Code Online (Sandbox Code Playgroud)

python top-n greatest-n-per-group window-functions pandas

138
推荐指数
6
解决办法
12万
查看次数

python dataframe pandas drop column using int

我知道要删除列,请使用df.drop('列名',轴= 1).有没有办法使用数字索引而不是列名删除列?

python dataframe pandas

121
推荐指数
7
解决办法
16万
查看次数

SQL Server:列到行

寻找优雅(或任何)解决方案将列转换为行.

这是一个例子:我有一个包含以下模式的表:

[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]
Run Code Online (Sandbox Code Playgroud)

以下是我想得到的结果:

[ID] [EntityId] [IndicatorName] [IndicatorValue]
Run Code Online (Sandbox Code Playgroud)

结果值将是:

1 1 'Indicator1' 'Value of Indicator 1 for entity 1'
2 1 'Indicator2' 'Value of Indicator 2 for entity 1'
3 1 'Indicator3' 'Value of Indicator 3 for entity 1'
4 2 'Indicator1' 'Value of Indicator 1 for entity 2'
Run Code Online (Sandbox Code Playgroud)

等等..

这有意义吗?您对在T-SQL中查看的位置以及如何完成它有什么建议吗?

sql t-sql sql-server unpivot

117
推荐指数
5
解决办法
24万
查看次数

从熊猫系列中删除NaN

有没有办法从熊猫系列中删除NaN值?我有一个系列可能有也可能没有NaN值,我想要删除所有NaN删除的系列副本.

python series pandas

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

何时或为何使用右外连接而不是左?

维基百科说:

"在实践中,很少使用明确的右外连接,因为它们总是可以用左外连接替换,并且不提供额外的功能."

任何人都可以提供他们更喜欢使用正确表示法的情况,为什么?我想不出使用它的理由.对我来说,它永远不会让事情更清楚.

编辑:我是甲骨文老将制作新年决议,以便从(+)语法中脱离自己.我想做得对

sql database right-join

53
推荐指数
5
解决办法
3万
查看次数

Postgresql LEFT JOIN json_agg()忽略/删除NULL

SELECT C.id, C.name, json_agg(E) AS emails FROM contacts C
LEFT JOIN emails E ON C.id = E.user_id
GROUP BY C.id;
Run Code Online (Sandbox Code Playgroud)

例如,Postgres 9.3创建输出

  id  |  name  |  emails
-----------------------------------------------------------
   1  |  Ryan  |  [{"id":3,"user_id":1,"email":"hello@world.com"},{"id":4,"user_id":1,"email":"again@awesome.com"}]
   2  |  Nick  |  [null]
Run Code Online (Sandbox Code Playgroud)

由于我使用LEFT JOIN,因此会出现没有右表匹配的情况,因此将空(null)值替换为右表列.因此,我将[null]作为JSON聚合之一获得.

我如何忽略/删除null所以[]当右表列为空时我有一个空的JSON数组?

干杯!

sql postgresql json postgresql-9.3

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

获取json列键为空的记录

我有usersjson列的表details.

我想获取所有用户记录,其中详细信息["email"]为空或电子邮件密钥不存在.

这不起作用:

SELECT users.* FROM users where details->'email' IS NOT NULL;

ERROR: operator does not exist: json -> boolean

postgresql json

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

如何在视图中获取列级依赖项

我已经就此事做了一些研究,但还没有解决方案.我想得到的是视图中的列级依赖项.所以,假设我们有一个这样的表

create table TEST(
    first_name varchar(10),
    last_name varchar(10),
    street varchar(10),
    number int
)
Run Code Online (Sandbox Code Playgroud)

和这样的观点:

create view vTEST
as
    select
        first_name + ' ' + last_name as [name],
        street + ' ' + cast(number as varchar(max)) as [address]
    from dbo.TEST
Run Code Online (Sandbox Code Playgroud)

我想要的是得到这样的结果:

column_name depends_on_column_name depends_on_table_name
----------- --------------------- --------------------
name        first_name            dbo.TEST
name        last_name             dbo.TEST
address     street                dbo.TEST
address     number                dbo.TEST
Run Code Online (Sandbox Code Playgroud)

我已尝试过sys.dm_sql_referenced_entities功能,但referencing_minor_id视图总是为0.

select
    referencing_minor_id,
    referenced_schema_name + '.' + referenced_entity_name as depends_on_table_name,
    referenced_minor_name as depends_on_column_name
from sys.dm_sql_referenced_entities('dbo.vTEST', 'OBJECT')

referencing_minor_id depends_on_table_name …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2016

22
推荐指数
2
解决办法
1170
查看次数

在PostgreSQL中将日期添加到日期会显示语法错误

我正在使用Postgres 9.0版本.我想在日期中添加几个月来计算新日期并在表格中更新.这里添加的月数将是整数变量.我的代码如下:

declare numberofmonths smallint = 5;
update salereg1 set expdate = current_date + interval cast(numberofmonths as text) month;
Run Code Online (Sandbox Code Playgroud)

上面的代码显示了转换时的语法错误.我不知道如何将numberofmonths变量指定为文本..任何人都可以帮助我.我犯的错是什么..

sql postgresql user-interface

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