mysql - SQL 错误代码 1055。按组标记的最小日期

标签 mysql sql date group-by min

我正在尝试查找患者服用带有特定标志的药物的最短日期。这是我正在使用的代码:

create table Schema.Want as select 
*, min(case when Flag="True" then Date end) as First_Date 
from Schema.Have group by Patient_ID; 

我也尝试列出所有变量,但这也没有帮助。当我运行该代码时,我收到与“only_full_group”关联的错误代码 1055。我看到其他人建议我关闭此功能(我还没有尝试过),但我担心为什么会首先抛出此错误。当我收到此错误代码时,是否意味着我的表中有重复的行?

我有 Patient_ID(NUM)、Drug_ID(NUM)、Quantity(NUM)、Fill_Date(日期/字符)、Flag(CHAR)、Comp_Set(CHAR) 和 Drug_strength(CHAR)。因此,如果一名患者在同一天配了两份相同强度和数量的相同药物的处方,那么他们的两行将是相同的。但这对我来说似乎不太可能。

我需要做的就是创建一个单独的列,其中包含患者服用某种药物的最早日期。我的代码在 SAS 中使用 proc sql 可以工作,但在使用 MySQL 时则不行。感谢您提前的帮助!!

最佳答案

您需要将 MIN() 值重新合并回详细记录中。如果您检查 SAS 中的日志,您将看到它正在为您执行重新合并。

create table Schema.Want as 
select a.*,b.First_Date
from Schema.Have a 
inner join 
(select Patient_ID, min(case when Flag="True" then Date end) as First_Date 
from Schema.Have group by Patient_ID) b
on a.Patient_ID=b.Patient_ID
;

关于mysql - SQL 错误代码 1055。按组标记的最小日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50260295/

相关文章:

c# - 我如何在 C# 控制台应用程序中执行 CMD 命令?

php - 在日期/时间字段中添加日期和时间,并使用 mysql 在 php 中获取更新的日期/时间

php - 如果存在则更新否则插入。 MySQL-PHP

如果没有外部约束,MySQL删除行

java - Java中的日期列表递增方法

php - PHP 中的 MySQL 数据按日期时间对 JSON 数据进行排序

php - 如何维护一页中所有字段的审计日志

mysql - 使用 Codeigniter 从同一个表进行多个 SQL 连接

php - MySQL查询题..我放弃!

php - 在 PHP 中获取给定月份的第一天?