获取查询列的最大值

Get max value of an query column

我正在尝试循环查询,以获得最高的 createdTime。 列 instanceId 是一个 GUID(字符串)是什么给我这个错误:

引用396B3850是一个instanceId的开头

<cfquery datasource="hostmanager" name="licenses">
SELECT *
FROM licenses
</cfquery>

<cfloop query="licenses">
    <cfquery name="getHighestCreatedTime" dbtype="query">
    SELECT MAX(CREATEDTIME)
    FROM licenses
    WHERE instanceId = #licenses.instanceId#
    AND startDate = #licenses.startDate#
    </cfquery>
</cfloop>

我对 ColdFusion 不太熟悉,但是你能不能不 运行 查询最大值?例如

SELECT TOP 1 CREATEDTIME 
FROM   licenses 
WHERE  {any conditions you want} 
ORDER BY CREATEDTIME DESC

错误的原因是像 #licenses.instanceId# 这样的字符串文字必须用引号括起来 - 或者更好 - 包裹在 cfqueryparam.

但是,在循环内查询非常效率低下,而且也不需要。只需使用数据库的聚合函数:

SELECT  InstanceID, startDate, MAX(CreatedTime) AS MaxCreatedTime
FROM    licenses 
GROUP BY InstanceID, startDate