我有28个固定宽度的文件,我分解后导入到SQL中。为了方便起见,我将它们称为industry1 to industry28。通过在excel中检查,我发现总共有38,700行,有1257个重复项。副本将以某种随机的方式出现。
行业表有28个字段,其中有9个字段的复合主键。重复项是整行的(全部28个字段)。
当我尝试使用UNION ALL (下面的例子)时,它只删除了28个重复项。有人能解释一下为什么会这样吗?
Select field1, field2...from industry1
UNION ALL
Select field1, field2...from industry2
U
有两个查询,如:
@users1 = Users.find_by_company_id(2)
@users2 = Users.find_by_office_id(2)
我想把这两者结合起来:
@users_to_show = @users1 + @users2
问题是如何防止重复用户显示。有办法将两者(数组)组合起来吗?然后确保删除重复的记录?
谢谢
更新:
# This QUERY gives all of a user's project members, people they work with
@project_ids = @projects.map(&:projec
我在toptal上找到了这个样本面试问题和答案,转载在这里。但我并不是真的理解代码。一个UNION怎么会变成这样的UNION (distinct)呢?另外,为什么这段代码更快? 问题 使用UNION ALL (非UNION)编写SQL查询,该查询使用WHERE子句消除重复项。你为什么要这样做呢?Hide answer通过运行如下查询,您可以使用UNION ALL避免重复,并且运行速度仍然比UNION DISTINCT (实际上与UNION相同)快得多: 答案 SELECT * FROM mytable WHERE a=X UNION ALL SELECT * FROM mytable WHE
我知道工会所有的问题都被问了很多,但我有一个细微的变化。我将对三个不同的查询/表集进行联合。根据查询的定义,前两个不会有重复项,但第三个肯定会有重复项。
我的问题是,我做工会/工会所有的顺序重要吗?例如,我是否应该对不会有重复项的前两个表执行UNION ALL (永远不会),然后对第三个表执行UNION,因为它会有重复项?或者如果颠倒了顺序会更好吗?或者这无关紧要吗?
这并不是一个真正紧迫的问题,只是想知道在这种情况下是否有最佳实践。
我正在读这个网站的
他们展示了使用联合所有删除重复项的技巧
SELECT *
FROM mytable
WHERE a = X
UNION ALL
SELECT *
FROM mytable
WHERE b = Y AND a != X
上面的脚本对我来说不太清楚。假设我想从两个employee表中提取数据,但希望使用union all和where子句删除重复数据。
假设我的employee表具有ID、Name和salary之类的结构。
现在使用union all发布一个示例SQL,它将显示来自两个表的不同行。
我需要一个清单的独特的电子邮件地址跨越两个表。例如,我有以下选择:
select distinct
email
from
contacts
order by
email
select distinct
email
from
customers
order by
email
如果我只需要其中之一,小菜一碟。如果我想把它们并排成两列,那也是小菜一碟。
但是如何将它们作为一列,没有重复,排序呢?这将在Azure Sql数据库上运行,如果有用的话。
这是R到SQL的转换。我的观点是两种观点的结合。然后,我需要从2列中删除重复项。
DQC是DEF和DCF两种观点的结合。DEF和DCF具有相同的8列,顺序相同。
我试过用CTE
CREATE VIEW DQC_FINAL AS (
WITH CTE
AS (SELECT
RN=ROW_NUMBER() OVER (PARTITION BY ITEM, CODE), *
FROM DQC
)
SELECT ITEM, CODE
FROM CTE WHERE RN > 1);
我不确定这是不是最好的选择。我只是尝试删除列项和代码中的任何重复项。工会本应该这样做的,但我没有得到正确的产出。
我正在使用第三方软件进行此SQL查询,该软件具有各种限制,其中一个限制是字符限制为1000个字符。我已经创建了代码,它将拉取注册到特定帐户的联系号码列表,并有一个专门为此任务创建的视图。我当前的脚本(见下文)工作正常,但返回了重复的响应。我想缩短代码的长度,并且只选择不同的响应。
作为背景,这是链接到CRM系统有多个地方,有人可以留下联系电话,所以我需要的代码,以删除任何重复时,它显示的响应。由于前述字符限制,当前代码不会尝试删除重复项,它是:
SELECT [Contact_Mobile_Phone] AS V, [Contact_Mobile_Phone] AS D
FROM [Datab
我在蜂巢里有两张桌子 t1:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
D | 1
t2:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
C | 1
C | 2 我想把它们连接在一起,这样所有的产品(prod)和修订版(rev)都在最终的表中,比如。 t3:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
C | 1
C | 2
D | 1 我已经尝试过了,但对
给出如下表格/数据:
WITH T(col1, col2) AS(
SELECT 1, 'A' FROM DUAL
UNION ALL
SELECT 2, 'B' FROM DUAL
UNION ALL
SELECT 3, 'B' FROM DUAL
UNION ALL
SELECT 4, 'B' FROM DUAL
UNION ALL
SELECT 5, 'A' FROM DUAL
UNION ALL
SELECT 6,
我需要一个报告,我希望我的sql查询重复每一行两次。
例子:
**Table 1**
Id Name
1 Ab
2 Cd
3 Ef
我想要写一个查询,它输出以下内容:
1 Ab
1 Ab
2 Cd
2 Cd
3 Ef
3 Ef
有什么办法我能做到吗?
除了使用union之外,我什么都想不出来
Select Id, name from Table1 union select Id, name from Table1
我正在尝试使用联合来获取两个表中所有不同的值。
其思想是在不重复的情况下获得columnA列中所有唯一值的计数,这样我就可以获得包含唯一columnA的所有列的总和。
这是我尝试过的(sql server express 2008)。
select
count(Distinct ColumnA)
from
(
select Distinct ColumnA as ColumnA from tableX where x = y
union
select Distinct ColumnA as ColumnA from tableY where y=z
)
我浏览了一下SQL-92标准,然后看了一下SQL-92语法,有人把它放在一起,但不太理解。
正如提醒我们的那样,在某些情况下,表达式应该显式分组:
默认情况下,Server 2005计算包含从左到右的UNION运算符的语句。使用括号指定计算顺序。例如,以下语句不等价:
/* First statement. */
SELECT * FROM TableA
UNION ALL
( SELECT * FROM TableB
UNION
SELECT * FROM TableC
)
GO
/* Second statement. */
(SELECT * FROM Tabl
早上好,当我从SQL 2018和Visual 2010运行这个查询时,我遇到了问题:“已经添加了一个具有相同键的元素”
SELECT DESCRIPCION AS nodeText,'DEPA' + CAST(IDDEPARTAMENTO AS VARCHAR) AS nodeKey,''AS nodeParentKey FROM DEPARTAMENTO
UNION ALL
SELECT DESCRIPCION AS nodeText,'PROV' + CAST(IDPROVINCIA AS VARCHAR) AS nodeKey,
'
我继承了一些代码,这些代码使用多个表来存储相同的信息,这取决于它的年龄(一个表用于当天、上个月等)。
目前,大多数代码在每个条件下都是重复的,我想尝试消除存储过程中的大部分重复。现在,重新设计设计不是一个选择,因为有许多应用程序依赖于当前的设计,而我无法控制它们。
到目前为止,我尝试过的一种方法是将所需的数据加载到临时表中,我发现这会对性能产生相当大的影响。我也尝试过使用结构如下的cte:
;WITH cte_table(...)
AS
(
SELECT ...
FROM a
WHERE @queried_date = CONVERT(DATE, GETDATE())
U
我有一个样本数据,我想分类。如果用户为1,则按降序排序视图,否则,如果用户不是1,则正常排序。我在下面写了sql,并得到了所需的结果。我的问题是为什么和如何运作?
with data as (
select 2 as User, 1 as Views UNION ALL
select 1,3 UNION ALL
select 4,1 UNION ALL
select 1,5 UNION ALL
select 1,6 UNION ALL
select 2,6 UNION ALL
select 7,2 UNION ALL
sel
下面的SQL在我的数据中查找重复的唯一ID,以便我可以清理它。我希望它包含该数字所在的表的列表。 所以 SELECT
GID_New, TableName, COUNT(*) no_matches
FROM
(SELECT GID_New
FROM "Drainage_Lines" AS TableName
UNION ALL
SELECT GID_New
FROM "Drainage_Points" AS TableName
UNION ALL
SELECT
我没有什么问题重复索引。
sql_query = SELECT id, title, file_id as table_id, "0" as description, "0" as content, "file" as type FROM language_files UNION ALL \
SELECT id, title, id as table_id, "0" as description, "0" as content, "list" as type FROM fi
我试图找出最简单的通用SQL表达式,它可以检查a和b两列是否相同。换句话说,在以下情况下,计算结果为true的表达式:
a为NULL,b为NULL;或
a不是NULL,b不是NULL和a = b
假设列a和b具有完全相同的数据类型。
我在下面的示例中使用的最明显的解决方案是非常复杂的,特别是因为我需要在一个15列表中重复这个15x子句:
SELECT * FROM (
SELECT 'x' a, 'x' b FROM dual
UNION ALL
SELECT 'x' a, NULL b FROM
我不是特别习惯生成复杂的SQL查询,在设计用于网络遍历的递归查询时,我很难将我对过程语言和基于集合的操作的理解混为一谈。我希望通过对有向图进行深度优先搜索来找到位于特定节点“上游”的边集(每个节点可以有多个上游边),理想情况下可以用SQL实现这一点。
我想要做的伪代码如下所示:
interesting_pipes = Pipes[]
func find_all_pipes_upstream(node n)
if is_inlet(nodename)
return Nil
else
for p in upstream_pipes:
if p in interesti
我正在对我拥有的几个表执行一些基本的sql操作,使用联合(无论对错)
但我需要去掉重复的东西。有什么想法吗?
select * from calls
left join users a on calls.assigned_to= a.user_id
where a.dept = 4
union
select * from calls
left join users r on calls.requestor_id= r.user_id
where r.dept = 4
请帮助我生成下面的查询,我已经挣扎了一段时间了。假设我有一个简单的表,其中包含月份号和信息,在这个月中是否有任何失败事件
下面是生成示例数据的脚本:
WITH DATA(Month, Success) AS
(
SELECT 1, 0 UNION ALL
SELECT 2, 0 UNION ALL
SELECT 3, 0 UNION ALL
SELECT 4, 1 UNION ALL
SELECT 5, 1 UNION ALL
SELECT 6, 0 UNION ALL
SELECT 7, 0 UNION ALL
S
我在数据库里有像这个的项目,我有这样的sql代码来检查ppl在游戏中买了多少次这些东西
SELECT
Items.Item,
count(Items.Item) as repeats
FROM
(
SELECT Item0 AS Item FROM playergame
UNION ALL
SELECT Item1 AS Item FROM playergame
UNION ALL
SELECT Item2 AS Item FROM playergame
UNION ALL
SELECT Item3 AS Item FROM playe
我有一个使用mysql的工作更新查询,但目前加载该页面的速度非常慢。有没有办法更快地更新我的查询?
,这是我的代码
<?php
$sql = "select ite_desc,ecr_desc, pric_cash, t.itemcode as itemcode ,sum(t.qty) as qty
from (
select ite_desc,ecr_desc, pric_cash, itemcode,qty from barcode as bc inner JOIN allinvty3 as ait on bc.itemcode
表结构:
表中存在编码字段可以重复的记录。此外,这些记录有一个列deleted_date,用于确定删除记录的时间。我创建了一个查询:
SELECT id
FROM analyzes
WHERE code IN (
SELECT code
FROM analyzes
WHERE deleted = 1
GROUP BY code
HAVING count(code)>1
)
但是它不能正常工作。提示一下,有很多sql经验的人,是否有可能是通过sql来提出给定的请求?
它可能已经被回答了,但我找不到我要找的东西。所以有个新问题。
我正在尝试使用下面的语法在SQLite JDBC中创建完整的外部连接。
我尝试过的SQLite查询:
SELECT table1.*, table2.*
FROM table1
LEFT JOIN table2
ON table1.ID = table2.ID
AND
table1.Name = table2.Name
UNION ALL
SELECT table1.*, table2.*
FROM table2
LEFT JOIN table1
ON table1.ID = table2.ID
AND
table1.N
所以,当我运行这个查询时,我创建了数字,并以错误的顺序返回,我不知道为什么。
SELECT ones.num + tens.num + 1
FROM
(SELECT 0 num UNION ALL
SELECT 1 num UNION ALL
SELECT 2 num UNION ALL
SELECT 3 num UNION ALL
SELECT 4 num UNION ALL
SELECT 5 num UNION ALL
SELECT 6 num UNION ALL
SELECT 7 num UNION ALL
SELECT 8 num UNION ALL
有没有一种方法可以通过使用标准SQL的bq命令行工具来设置大型查询“值表”结果集的格式?这在使用Standard SQL的BigQuery控制台中可以按预期工作,但在bq中则不能。我找不到一种方便的解决方法。使用Legacy SQL,它也能像预期的那样工作。
我的用例:我正在探索BigQuery中包含大量列的表。BigQuery中的匿名查询要求所选列的名称是唯一的,否则会收到消息“不支持结果中的重复列名。找到重复的列:...”。当我只是在探索数据时,这是一个非常严格的要求。幸运的是,在BigQuery web控制台中有一种方法可以通过在select表达式中使用值表来解决这个问题。
with
l
我正在使用bigquery遗留sql尝试查询,如下所示:
表中的数据在更新时会被追加,所以首先我需要对最新更新的信息(使用MAX(updatedOn))进行子选择,然后在我的查询中进行。标记是一个重复字段,带有字符串值。
SELECT
all._id AS _id
FROM
[mytable] AS all
JOIN EACH (
SELECT
_id,
MAX(updatedOn) AS updatedOn
FROM
[mytable]
GROUP EACH BY
_id) AS latest
假设有两个数据行:
with
data_table (title, val_a, val_b) as (
select 'A', 1, 1 from dual union all
select 'B', 1, 2 from dual
)
select *
from data_table;
我想要创建一个SQL查询,它在VAL_A <> VAL_B时重复一行,返回三行如下:
| TITLE | VAL_A | VAL_B | MARKER |
----------------------------------
我有以下使用union的Transact SQL查询。我需要一些关于这将如何在linq,即一些例子将是很好的建议,如果有人可以推荐一个良好的联合在LINQ教程。
select top 10 Barcode, sum(ItemDiscountUnion.AmountTaken) from
(SELECT d.Barcode,SUM(AmountTaken) AmountTaken
FROM [Aggregation].[dbo].[DiscountPromotion] d
GROUP BY d.Barcode
UNION ALL
SELECT i.Barcode,SUM(A
来自neo4j的中间媒体密码查询类有一个称为子查询的部分,它提到:
“随着查询变得更加复杂,将查询结果与UNION组合在一起,您可能需要组合多个查询的结果。您可以使用UNION。使用UNION,您正在组合的查询必须返回相同数量的属性或数据。
下面是一个简单的例子:
MATCH (m:Movie) WHERE m.year = 2000
RETURN {type:"movies", theMovies: collect(m.title)} AS data
UNION ALL
MATCH (a:Actor) WHERE a.born.year > 2000
RETURN {
我用两个联合子句得到了结果。我使用distinct消除重复行。但我必须保留第一行,但distinct要去掉第一行。怎样才能保持第一行?
//for example in this sql first i have expected PRodId=10 first but it is last.
SELECT DISTINCT * FROM (
SELECT ProdId FROM Products WHERE ProdId=10
UNION ALL
SELECT ProdId FROM Products WHERE ProdId=120
UNION A
我有以下SQL代码来执行清理任务:
SELECT表中满足条件的第一个n行,并将它们放入一个新表中。注意,对于不同的表,[source].var='1'是不同的。
选择TOP n* INTO tablen FROM source . TOP =‘1’;#具体示例选择TOP n* INTO table1 FROM source e.var1=‘1’;选择TOP n* INTO table2 FROM source。var2=‘1’;选择TOP n* INTO table3 FROM source。TOP 3=‘1’;选择TOP n* INTO table4,其中source.v