Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server中的两个参数分组_Sql_Sql Server - Fatal编程技术网

SQL Server中的两个参数分组

SQL Server中的两个参数分组,sql,sql-server,Sql,Sql Server,我有一张这样结构的桌子: id | timestamp | barcode 时间戳是datetime,条形码是完整的条形码,我只需要其中的前9位数字 我需要通过一个查询获取每天每种产品的计数 所以我基本上需要这样的结果: date | item number | count -----------+-------------+-------- 12.02.2019 | 827384950 | 32 项目编号为左侧(条形码,9)您可以在下面进行尝试-使用cast()将时间戳转换

我有一张这样结构的桌子:

id | timestamp | barcode
时间戳是datetime,条形码是完整的条形码,我只需要其中的前9位数字

我需要通过一个查询获取每天每种产品的计数

所以我基本上需要这样的结果:

date       | item number | count
-----------+-------------+--------
12.02.2019 | 827384950   | 32

项目编号为
左侧(条形码,9)

您可以在下面进行尝试-使用
cast()
将时间戳转换为日期,然后将其添加到分组中

select cast([timestamp] as date),left(barcode, 9) as itemnumber,count(*)
from tablename
group by cast([timestamp] as date),left(barcode, 9)

您可以在下面尝试-使用
cast()
将时间戳转换为日期,然后将其添加到分组中

select cast([timestamp] as date),left(barcode, 9) as itemnumber,count(*)
from tablename
group by cast([timestamp] as date),left(barcode, 9)

此查询具有更好的性能

select date, itemnumber, count(*) from
(select cast([timestamp] as date) as date,left(barcode, 9) as itemnumber
from tablename) a
group by date,itemnumber

此查询具有更好的性能

select date, itemnumber, count(*) from
(select cast([timestamp] as date) as date,left(barcode, 9) as itemnumber
from tablename) a
group by date,itemnumber

只晚了20秒…:)嘿,这太棒了!我可以补充一下我的问题吗?这样我就不用再做一个新的后续话题了。如果我想按
shift
对它们进行分组,你会推荐什么呢?如果
shift 1
06:00:00到14:29:59
在datetime
时间戳中,
shift 2
14:30:00到22:59
。。。等等?如果你在@Maximilinberbechelovokay中添加一个单独的问题,那就太好了:)只晚了20秒…:)嘿,这太好了!我可以补充一下我的问题吗?这样我就不用再做一个新的后续话题了。如果我想按
shift
对它们进行分组,你会推荐什么呢?如果
shift 1
06:00:00到14:29:59
在datetime
时间戳中,
shift 2
14:30:00到22:59
。。。等等?如果你能添加一个单独的问题@MaximilianBerbechelovOkay,那就太好了:)