我想用这个查询从一列(BoekingPlaatsId列)中选择不同的值:
SELECT MAX(BoekingPlaatsId), BewonerId, Naam, VoorNaam
FROM table
GROUP BY BewonerId, Naam, VoorNaam
Run Code Online (Sandbox Code Playgroud)
我如何在SQL Server中执行此操作?
我正在使用Meteor,而我正在尝试仅查找字段的不同(唯一)值.Mongodb有命令
Collection.distinct("fieldname");
Run Code Online (Sandbox Code Playgroud)
但它没有在Mongo的Meteor驱动程序中实现.我尝试过使用meteor-mongo-extensions软件包,但客户端控制台仍然有一个"未定义"的客户端Collection.distinct("fieldname");
什么,基本上是一个独特的寻找?
我觉得有人这是一个基本的查询 - 例如,一个学生列表,他们的老师作为一个领域,然后由教师制作一份学生名单,例如......
如果我可以将我懒惰的大脑包裹在一般概念中,我可能会抨击一些可行的东西.
使用Hibernate的Criteria,我想执行相当于:
select distinct uspscity, state from citycomplete where USPSCITY = 'HOUSTON'
Run Code Online (Sandbox Code Playgroud)
我认为做以下操作会产生我想要的结果:
ProjectionList projList = new ProjectionList();
projList.add(Projections.distinct(Projections.property("id.state")));
projList.add(Projections.distinct(Projections.property("id.uspsCity")));
criteria.setProjection(projList);
Run Code Online (Sandbox Code Playgroud)
但是,这实际上做的是执行类似的事情:
select distinct uspscity, distinct state from citycomplete where USPSCITY = 'HOUSTON'
Run Code Online (Sandbox Code Playgroud)
显然,这会引发错误.
除了不使用Criteria之外,还有解决方案吗?
谢谢,
布兰登
我有一个mysql表,看起来像这样:
1 value1 value2 3534
2 value1 value1 8456
3 value1 value2 3566
4 value1 value3 7345
5 value2 value3 6734
Run Code Online (Sandbox Code Playgroud)
我需要一个查询来选择具有不同列2和3的所有行,例如,我希望此示例的输出如下所示:
1 value1 value2 3534
2 value1 value1 8456
4 value1 value3 7345
5 value2 value3 6734
Run Code Online (Sandbox Code Playgroud)
我已经找到了一些关于如何做的样本,但它们都在每个列上单独选择不同的.
我一直在努力改善现有Oracle数据库驱动的应用程序的查询时间,该应用程序运行有点迟缓.应用程序执行几个大型查询,例如下面的查询,这可能需要一个多小时才能运行.在下面的查询中替换DISTINCTwith a GROUP BY子句会将执行时间从100分缩短到10秒.我的理解是,SELECT DISTINCT并GROUP BY以几乎相同的方式运作.为什么执行时间之间存在如此巨大的差距?查询在后端执行的方式有何不同?是否存在SELECT DISTINCT运行速度更快的情况?
注意:在以下查询中,WHERE TASK_INVENTORY_STEP.STEP_TYPE = 'TYPE A'只表示可以过滤结果的多种方法之一.提供此示例是为了显示加入所有未包含列的表的原因SELECT,并将导致所有可用数据的十分之一
SQL使用DISTINCT:
SELECT DISTINCT
ITEMS.ITEM_ID,
ITEMS.ITEM_CODE,
ITEMS.ITEMTYPE,
ITEM_TRANSACTIONS.STATUS,
(SELECT COUNT(PKID)
FROM ITEM_PARENTS
WHERE PARENT_ITEM_ID = ITEMS.ITEM_ID
) AS CHILD_COUNT
FROM
ITEMS
INNER JOIN ITEM_TRANSACTIONS
ON ITEMS.ITEM_ID = ITEM_TRANSACTIONS.ITEM_ID
AND ITEM_TRANSACTIONS.FLAG = 1
LEFT OUTER JOIN ITEM_METADATA
ON ITEMS.ITEM_ID = ITEM_METADATA.ITEM_ID
LEFT OUTER JOIN JOB_INVENTORY
ON ITEMS.ITEM_ID = JOB_INVENTORY.ITEM_ID
LEFT OUTER JOIN JOB_TASK_INVENTORY
ON JOB_INVENTORY.JOB_ITEM_ID …Run Code Online (Sandbox Code Playgroud) 我写了一个脚本,每次用户登录我们域中的计算机时都会运行.此脚本记录用户以及他们登录的计算机.任意数量的用户都可以登录任意数量的计算机.
我刚刚从一个不在身边的顾问那里继承了这个IT环境,我正在编写这个小问题,所以当我接到用户的电话时,我可以搜索该用户的名字并合理地预测他们正在使用哪台计算机.他们登录任何给定计算机的次数.
以下是"登录"表中的数据示例:
COMPUTER USER
ncofp02 lee
ncofp02 lee
ncofp02 andy
ncodc01 andy
ncodc01 andy
ncodc01 lee
Run Code Online (Sandbox Code Playgroud)
我正在敲打的是在多列中计算不同值的逻辑.我希望看到这样的结果:
COMPUTER USER COUNT
ncofp02 lee (2)
ncofp02 andy (1)
ncodc01 lee (1)
ncodc01 andy (2)
Run Code Online (Sandbox Code Playgroud)
有没有办法用mysql中的单个查询来完成这个,或者我应该开始循环一些PHP?(booooo!)
假设我有一个包含重复值的List,我想删除重复项.
List<int> myList = new List<int>(Enumerable.Range(0, 10000));
// adding a few duplicates here
myList.Add(1);
myList.Add(2);
myList.Add(3);
Run Code Online (Sandbox Code Playgroud)
我找到了3种方法来解决这个问题:
List<int> result1 = new HashSet<int>(myList).ToList(); //3700 ticks
List<int> result2 = myList.Distinct().ToList(); //4700 ticks
List<int> result3 = myList.GroupBy(x => x).Select(grp => grp.First()).ToList(); //18800 ticks
//referring to pinturic's comment:
List<int> result4 = new SortedSet<int>(myList).ToList(); //18000 ticks
Run Code Online (Sandbox Code Playgroud)
在SO的大多数答案中,Distinct方法显示为"正确的",但HashSet总是更快!
我的问题:当我使用HashSet方法时,有什么我必须要注意的,还有另一种更有效的方法吗?
我是Apache Spark的新手,正在学习基本的功能.有一个小小的疑问.假设我有一个元组的RDD(键,值),并希望从中获得一些独特的元素.我使用distinct()函数.我想知道函数在什么基础上认为元组是完全不同的?它是基于键,值,还是两者兼而有之?
我做了一些搜索似乎无法得到我正在寻找的结果.基本上我们在整个公司都有四种不同的管理系统,我正在定期组合每个系统的所有数据.我的目标是每小时将数据更新到一个中央数据库.这是我正在使用的示例数据集:
COMPUTERNAME | SERIALNUMBER | USERNAME | LASTIP | LASTUPDATE | SOURCE
TEST1 | 1111 | BOB | 1.1.1.1 | 1/17/2011 01:00:00 | MGMT_SYSTEM_1
TEST1 | 1111 | BOB | 1.1.1.1 | 1/18/2011 01:00:00 | MGMT_SYSTEM_2
TEST1 | 1111 | PETER | 1.1.1.11 | 1/19/2011 01:00:00 | MGMT_SYSTEM_3
TEST2 | 2222 | GEORGE | 1.1.1.2 | 1/17/2011 01:00:00 | MGMT_SYSTEM_1
TEST3 | 3333 | TOM | 1.1.1.3 | 1/19/2011 01:00:00 | MGMT_SYSTEM_2
TEST4 | 4444 | MIKE | 1.1.1.4 | …Run Code Online (Sandbox Code Playgroud) 我正在尝试构造一个SQL语句,该语句从位于同一个表中的多个列返回唯一的非空值.
SELECT distinct tbl_data.code_1 FROM tbl_data
WHERE tbl_data.code_1 is not null
UNION
SELECT tbl_data.code_2 FROM tbl_data
WHERE tbl_data.code_2 is not null;
Run Code Online (Sandbox Code Playgroud)
例如,tbl_data如下:
id code_1 code_2
--- -------- ----------
1 AB BC
2 BC
3 DE EF
4 BC
Run Code Online (Sandbox Code Playgroud)
对于上表,SQL查询应返回两列中的所有唯一非空值,即:AB,BC,DE,EF.
我对SQL很新.我上面的声明有效,但有没有更简洁的方法来编写这个SQL语句,因为这些列来自同一个表?