给定一个包含2列的表
Name(type VARCHAR) Time(type DATETIME)
我需要编写一个SQL查询来查找条目数量最多的小时。
例如:
Name Time
---- ----
a 12:30pm
b 12:05pm
c 13:55pm
d 12:50pm
e 01:02am
所需结果为:12 1pm 1 1pm
我的总体想法是:
1)按小时分组行
2)统计行数/组数
3)按降序排列计数
4)打印最大计数
我需要帮助将此转换为SQL查询。
我正在阅读格兰特·弗里奇( Grant Fritchey )的“剖析Server执行计划”,这对我理解为什么某些查询速度慢有很大帮助。
然而,我对这种情况感到困惑,因为简单的重写执行起来要快得多。
这是我的第一次尝试,需要21秒。它使用一个派生表:
-- 21 secs
SELECT *
FROM Table1 AS o JOIN(
SELECT col1
FROM Table1
GROUP BY col1
HAVING COUNT( * ) > 1
) AS i ON ON i.col1= o.col1
我的第二次尝试要快3倍,只需将
我有一个inventory表,其中包含一个按LocGroup分组的运行数量列,如图1所示 ? 我想要获取每天的总库存,然后查看最终结果图2。示例:我可以在2019-10-21上看到总库存为11,细分为GroupA -1和GroupB 12 ? 我已经创建了可以工作的代码,但是当我在100,000+记录上运行时,它真的很慢,有没有更好的方法来做到这一点? 我猜目前的方法很慢,因为b.EntryDate <= a.EntryDate每次都在求和。 我当前的代码: with cte_1 -- Get Total Stock Position not Grouped
as
(
我尝试运行一个简单的查询,但是我得到了错误response too large to return
选择accno,年份,月份,计数(*)为cnt
来自eric.accesslogs_tbl
按年龄、年份、月份分组
按cnt订购,年,月限1000;
我的数据表统计数据:
表号:64.7GB
行数:59 971 371
有什么解决办法吗?否则我们就不能用它了。