So, I started poking around with creating a Stored Procedure this morning and I finally found the “you’re missing something insanely obvious” part of the equation. All I needed to do to mix the aggregate function with a normal select was use the GROUP BY statement (which had the added bonus of also taking care of the need to use SELECT DISTINCT).
Long story short, I just reduced all of that code I posted yesterday to this.
<cfquery name=”getHitData” datasource=”#request.datasource#”>
SELECT search_log.keywords, count(search_log.keywords) AS hitCount
FROM search_log
WHERE 1 = 1
<cfif isDefined(‘attributes.startDate’) AND trim(attributes.startDate) is not ”>
AND search_log.queryDate >= #createODBCDate(attributes.startDate)#
</cfif>
<cfif isDefined(‘attributes.endDate’) AND trim(attributes.endDate) is not ”>
AND search_log.queryDate <= #createODBCDate(attributes.endDate)#
</cfif>
GROUP BY search_log.keywords
ORDER BY hitCount DESC
</cfquery>
And the page went from taking about 30 seconds to run to instantly loading.
Yay.
Discover more from My Name Is Michael
Subscribe to get the latest posts sent to your email.