我想找出病人服用带有特定标志药物的最短日期。下面是我使用的代码:
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。我看到其他人建议我关闭这个功能(我还没有尝试过),但是我很担心为什么会首先抛出这个错误。当我得到这个错误代码时,这是否意味着我的表中有重复的行?
我有病人id(num)、药物id(num)、数量(num)、填充日期(date/char)、标志(char)、成分集(char)和药物强度(char)。因此,如果一个病人在同一天开了两张处方,剂量和剂量都相同,那么他们的两排就完全一样了。但我觉得不太可能。
我所要做的就是创建一个单独的列,列上患者开某种药物的最早日期。我的代码在sas中使用procsql工作,但在我使用mysql时就不行了。提前谢谢你的帮助!!
3条答案
按热度按时间7rfyedvj1#
您需要将min()值重新合并回详细记录。如果你检查sas的登录,你会看到它说它正在为你重新合并。
b91juud32#
您在
Select
除了min
也必须在group by
条款。注意:如果在
select
; 你必须给他们一个聚合函数(最小值,最大值,平均值…),而不是把他们包含在group by
.我建议在决定创建表之前在sql中执行select only:
sg3maiej3#
使用选择进入:
同时将*替换为列名并按所有名称分组