- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到目前为止,我在这上面花了几个小时,我使用的是 aws athena,但没有取得任何进展,我认为我缺少一些东西:
所以我有这样一张 table
------------------------------------------------------------------
caseid | postcode | streetname | state | dateandtime
-----------------------------------------------------------------
123123 | 4000 | arthur | QLD | 2018-09-30 10:32:51.000
------------------------------------------------------------------
现在这张表将有多个重复的 caseid,我想按日期和时间获取最新的 caseid,我发现我可以执行以下操作:
SELECT b.caseid, MAX(b.dateandtime) as dateandtime
FROM jsonmanual b
GROUP BY b.caseid
它按我想要的方式工作。
现在我需要用日期和时间的 between 语句过滤这些结果,并从这些我无法做到的独特条目中获取邮政编码/街道名称/州的计数,下面是我目前的主要猜测,以显示两个时间戳之间的邮政编码计数:
SELECT a.postcode, count(a.postcode) as countof
FROM jsonmanual a
INNER JOIN (
SELECT distinct b.caseid, MAX(b.dateandtime) as dateandtime, b.postcode
FROM jsonmanual b
GROUP BY b.caseid, b.postcode
) b ON a.caseid = b.caseid and a.postcode = b.postcode
where dateandtime between TIMESTAMP '2016-05-05 09:51:00' and TIMESTAMP '2020-01-10 15:36:00'
group by a.postcode
如果有任何帮助,我们将不胜感激,因为您可能会说我不是一个 SQL 专家,但我的目标是变得更好 :-)
SQLFiddle: http://www.sqlfiddle.com/#!9/2f4fbd/1
我的理想输出
--------------------
|postcode | countof |
|-------------------|
|1166 | 1 |
|1231 | 1 |
|2171 | 1 |
|3651 | 1 |
|4469 | 1 |
|4697 | 2 |
--------------------
最佳答案
amazon-athena
支持窗口函数所以,你可以尝试使用 ROW_NUMBER
[窗口函数][1] 制作行号 order by dateExact desc
然后得到行号是1行。
下一步使用COUNT
和group by
架构(MySQL v8.0)
CREATE TABLE cases
(`country` varchar(3), `vetClinic` varchar(11), `ageMonths` int, `vaxStatus` varchar(11), `patientId` long, `ageWeeks` int, `methodDiag` varchar(8), `dateExact` varchar(19), `vetName` varchar(14), `streetName` varchar(5), `caseNumber` int, `caseId` varchar(36), `dataOrigin` varchar(10), `datePresented` varchar(19), `state` varchar(3), `vaxDate` varchar(19), `cognitoSubNumber` varchar(36), `dateAndTime` varchar(19), `streetNumber` int, `postcode` int, `clinicalSigns` varchar(8), `caseOutCome` varchar(7), `isOpen` varchar(4), `ageYears` int, `species` varchar(8), `suburb` varchar(13), `vaxBrand` varchar(7))
;
INSERT INTO cases
(`country`, `vetClinic`, `ageMonths`, `vaxStatus`, `patientId`, `ageWeeks`, `methodDiag`, `dateExact`, `vetName`, `streetName`, `caseNumber`, `caseId`, `dataOrigin`, `datePresented`, `state`, `vaxDate`, `cognitoSubNumber`, `dateAndTime`, `streetNumber`, `postcode`, `clinicalSigns`, `caseOutCome`, `isOpen`, `ageYears`, `species`, `suburb`, `vaxBrand`)
VALUES
('AUS', 'whoopwhoop', 9, 'vaxinated', 9839815985, 9, 'vomiting', '2019-05-05 09:54:26', 'adam de mamp', 'ann', 3, '2edd7dd0-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2019-08-19 06:50:59', 'SA', '2019-04-02 19:52:07', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 126, 3651, 'hat', 'alive', 'True', 9, 'pug', 'carindale', 'digimon'),
('AUS', 'whoopwhoop', 9, 'vaxinated', 9839815985, 9, 'vomiting', '2019-05-05 09:52:26', 'adam de mamp', 'buts', 3, '2edd7dd0-c49c-11e8-b678-a5dc64edc7ee', 'poops', '2019-08-19 06:50:59', 'SA', '2019-04-02 19:52:07', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 126, 3651, 'hat', 'alive', 'True', 9, 'pug', 'carindale', 'digimon'),
('AUS', 'whoopwhoop', 9, 'vaxinated', 9839815985, 9, 'rash', '2019-05-05 09:51:26', 'adam de mamp', 'ann', 3, '2ecb7c70-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2019-08-19 06:50:59', 'SA', '2019-04-02 19:52:07', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 126, 3651, 'hat', 'alive', 'True', 9, 'pug', 'carindale', 'digimon'),
('AUS', 'rbh', 9, 'vaxinated', 2114598894, 4, 'blood', '2019-01-10 15:36:29', 'adam de mamp', 'queen', 2, '2ed78a60-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2018-09-30 19:28:34', 'WA', '2019-01-19 03:38:28', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 39, 1166, 'hat', 'ongoing', 'True', 1, 'pitbull', 'carindale', 'digimon'),
('AUS', 'rbh', 9, 'unvaxinated', 9606793080, 46, 'blood', '2018-11-01 16:18:51', 'sumo man', 'annie', 1, '2edabeb0-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2018-10-14 16:21:43', 'ACT', '2018-12-10 03:36:49', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 59, 1231, 'bad', 'ongoing', 'True', 12, 'aligator', 'fendalton', 'digimon'),
('AUS', 'rbh', 12, 'unvaxinated', 2406607356, 47, 'blood', '2018-12-18 05:36:22', 'adam de mamp', 'annie', 3, '2eddf300-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2019-05-12 22:21:49', 'TA', '2019-03-15 17:28:35', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 180, 2171, 'hat', 'dead', 'True', 7, 'staffy', 'brisbane city', 'digimon'),
('AUS', 'examplevet', 2, 'vaxinated', 2449508561, 4, 'rash', '2018-12-07 15:36:05', 'anders holmvic', 'annie', 3, '2ed196f0-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2019-04-12 04:31:22', 'WA', '2019-02-13 17:09:51', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 10, 4450, 'fateigue', 'alive', 'True', 14, 'aligator', 'spring hill', 'varex'),
('AUS', 'rural', 6, 'vaxinated', 3900464429, 33, 'rash', '2019-09-24 15:03:15', 'adam de mamp', 'queen', 2, '2ed47d20-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2019-06-02 20:01:12', 'NSW', '2019-02-19 10:10:35', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 129, 4697, 'fateigue', 'dead', 'True', 15, 'staffy', 'balanora', 'suplex'),
('AUS', 'Vets are us', 9, 'unvaxinated', 8871302949, 1, 'vomiting', '2019-03-29 09:17:00', 'Lucy foxtrot', 'annie', 1, '2edd7dd0-c49c-11e8-b678-a5dc64edc7ee', 'ParvoAlert', '2018-11-21 08:51:38', 'SA', '2019-02-04 06:05:07', 'c70c64ad-d1d0-40be-86e6-a96de1b8de8b', '2018-09-30 10:32:51', 67, 4469, 'hat', 'dead', 'True', 13, 'aligator', 'carindale', 'digimon')
;
查询#1
SELECT postcode ,COUNT(*) FROM (
SELECT t1.*,ROW_NUMBER() OVER(PARTITION BY caseid ORDER BY dateExact desc) rn
FROM cases t1
) t1
where rn = 1
group by postcode;
| postcode | COUNT(*) |
| -------- | -------- |
| 3651 | 2 |
| 4450 | 1 |
| 4697 | 1 |
| 1166 | 1 |
| 1231 | 1 |
| 2171 | 1 |
关于SQL 语法 greatest-n-per-group + athena 中的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52582919/
为什么 GREATEST(createdTS, modifiedTS) 每列之一为“null”时返回“null”? 如果两者之一为空,我只需要另一个的值。如果两者都为空,则为空。 我该怎么做? 正如我
在Elasticsearch索引中,我有具有以下字段的文档:fooId和fooField。 我想获取给定fooId值但fooField最大值的文档。现在,我有一个聚合的查询过滤器,如下所示: "agg
以下关系仅适用于两个 (3, 12) 数字,当用于三个数字 (3,12,10) 时无法产生正确答案。只是想知道这是我的理解还是仅适用于两个数字,对我来说欧几里得算法也是如此。 LCM(a, b) =
我正在试验 mysql,并使用 GRATEST() 函数进行查询来比较两个不同的字段。 我的查询如下所示: SELECT id, float1, float2, GREATEST(
我创建了一个显示最早时间戳的列,现在我想创建另一个显示该时间戳来源的列。这就是我正在使用的,但当原始数据中的时间戳值之一为 NULL 时,它不起作用。 SELECT LEAST (timestamp_
我试图在我的 mysql 数据库中查询 5 个单独的表,并显示分配给他们的项目最多的 Actor 。表结构如下; item itemid | item | description | brand |
我正在使用 mysql GREATEST()函数从任一列(苹果或桃子)中选择最高的整数值。 +----+------------------+ | id | apples | peaches | +-
选择前 n 个结果,我在这里看到了很多关于如何做到这一点的帖子和精彩文章,但我很难用我的数据集来做到这一点。大多数示例都集中在数据集上,而不需要额外的连接。 我一直在尝试应用 http://www.x
有没有办法从多个列中选择最大和第二大的数字? 例子: Col1 = 0; Col2 = 4; Col3 = 6; Col4 = 3; 我最大的是 6,其次是 4。 我正在尝试实现这样的东西: SELE
我正在尝试在 Snowflake 中使用 GREATEST(),但每当我有空值时,我都会得到 null 而不是所需的结果: select greatest(1,2,null); -- null 这种行
我在 MYSQL 和显然其他数据库引擎中发现有一个“最好的”函数可以使用,例如:great(1, 2, 3, 4),它会返回 4。我需要这个,但我使用的是 IBM 的 DB2 .有没有人知道这样的等效
如何使用 Django 查询获取模型的两个不同 Decimal 字段中的较大者? 例如,如果我有一个模型月份,其中包含名为“实际收入”和“预计收入”的字段,我如何返回较大的值? 我以前使用过 MySQ
在 Haskell 中关于不动点的文本中,经常提到最小和最大不动点。例如。在 Data.Functor.Fixedpoint文档或 here . 最小和最大暗示所涉及类型的顺序(或者仅在固定点上定义它
我正在尝试在 HQL 中找到两个日期中最好的一个。 在 SQL 中,这是有效的: SELECT ( GREATEST(a1.startDate, '2019-10-01T00:00:00Z') ) F
我已经解决了一堆关于使用 mySQL 的 GREATEST() 函数的正确方法的问题,但没有一个问题显示如何将它与列一起使用。 Official Documentation给出手动输入列表的列表。 T
我试图从这部分查询中获得最大值(value): greatest((follette_title.usedbuying_price *1.37) or (amtext.price*1
题目地址:https://leetcode-cn.com/problems/kids-with-the-greatest-number-of-candies/ 题目描述 给你一个数组 candie
我的理解是 GREATEST() 和 LEAST() 不是 SQL 标准的一部分,但很常见。 我在想,有没有办法在 SQL 标准中克隆 GREATEST 的功能? SELECT id, GREATES
我正在努力构建一个 Tableau仪表板,最近刚刚了解了 Tableau v9 中发布的新的详细级别计算。原始数据结构如下: User Workflow Step Time Spe
我的 SQL 生锈了——我有一个简单的要求来计算两列值中较大值的总和: CREATE TABLE [dbo].[Test] ( column1 int NOT NULL, column
我是一名优秀的程序员,十分优秀!