相关疑难解决方法(0)

多列上的SELECT COUNT(DISTINCT ...)错误?

我有一个表,VehicleModelYear,包含列id,年份,品牌和模型.

以下两个查询按预期工作:

SELECT DISTINCT make, model
FROM VehicleModelYear

SELECT COUNT(DISTINCT make)
FROM VehicleModelYear
Run Code Online (Sandbox Code Playgroud)

但是,此查询不起作用

SELECT COUNT(DISTINCT make, model)
FROM VehicleModelYear
Run Code Online (Sandbox Code Playgroud)

很明显,答案是第一个查询返回的结果数,但只是想知道这个语法有什么问题或者为什么它不起作用.

sql t-sql sql-server

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

计算不同的记录(所有列)不起作用

什么是正确的语法

count (distinct *) from t1
Run Code Online (Sandbox Code Playgroud)

我得到他跟随错误:

[Err] 42000 - [SQL Server]关键字'distinct'附近的语法不正确.

sql t-sql sql-server count

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

如何在特定列上选择不同的

我在表格中有几列

Col1,Col2,Col3,Col4

现在我想选择这样的

SELECT DISTINCT (Col1, Col2, Col3), Col4

即基于这三个colunms得到不同的.

distinct sql-server-2008

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

TSQL CHECKSUM难题

SELECT BINARY_CHECKSUM('Clifton House, Thornaby Place, Teesdale South, Stockton-On-Tees, Cleveland, TS17 6SD')
SELECT BINARY_CHECKSUM('Clifton House, Teesdale South, Thornaby Place, Stockton-On-Tees, Cleveland, TS17 6SD')

SELECT BINARY_CHECKSUM('Glenfield Hospital, Groby Road, , Leicester, Leicestershire, LE3 9DZ')
SELECT BINARY_CHECKSUM('Glenfield Hospital, Groby Road, , Leicester, Leicestershire, LE3 9EJ')
Run Code Online (Sandbox Code Playgroud)

看看上面的内容.即使文本中存在差异,2对地址也将生成相同的校验和值.我的理解是,虽然您不能保证CHECKSUM和BINARY_CHECKSUM对于任何随机内容都不同,它们应该有助于确定给定行中相对较小的更改.

有趣的是,这些价值观恰恰相反.它们为非常相似的数据值生成相等的校验和值.事实上,这些是大型(680,000条记录)地址表中唯一的重复校验和值.

我有点担心我在生成UPDATE时误解了校验和的价值?我是否必须通过现场比较来求助于暴力场,以确保在一行数据中获得变化?

这些示例的原始数据分为6个单独的列.为清晰起见,我已将代码示例缩减到最小状态.

t-sql sql-server

5
推荐指数
1
解决办法
5370
查看次数

根据来自另一列的不同值对值进行计数

我需要根据 orderlineNo 的不同来计算有多少个 orderline。每个 OrderNo 不同,但每个订单的 OrderLineNo 相同。即订单上有 9 行,则订单行编号将从 1 - 9 变化。同样,如果另一个订单上有 3 条订单行,则订单行编号将从 1 - 3 变化

但在 orderlineno 中可能有相同的订单号 - 为此我只想计算一次

例子:

OrderNo        OrderLineNo
987654             1
987654             2
987654             2
987654             3
987654             4
987654             5
987654             6
987654             7
Run Code Online (Sandbox Code Playgroud)

这里的总订单行是 7。有两个订单行为 2,我希望它们只计算一次。

使用 SQL Server 2014 可以吗?

sql sql-server sql-server-2014

5
推荐指数
1
解决办法
8208
查看次数

如何跟踪列更改其值的次数?

我有一张名为crewWork的表如下:

CREATE TABLE crewWork( 
       FloorNumber int, AptNumber int, WorkType int, simTime int )
Run Code Online (Sandbox Code Playgroud)

在填充表格之后,我需要知道apt发生了多少次变化以及楼层发生变化的次数.通常我希望在每个apt上找到10行,在每层上找到40-50行.我可以为此编写一个标量函数,但我想知道是否有任何方法可以在t-SQL中执行此操作而无需编写标量函数.

谢谢

数据如下所示:

FloorNumber  AptNumber    WorkType      simTime  
1            1            12            10  
1            1            12            25  
1            1            13            35  
1            1            13            47  
1            2            12            52  
1            2            12            59  
1            2            13            68  
1            1            14            75  
1            4            12            79  
1            4            12            89  
1            4            13            92  
1            4            14            105  
1            3            12            115  
1            3            13            129  
1            3            14            138 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008

3
推荐指数
2
解决办法
3241
查看次数