我有一个查询,它统计已完成任务的数量并返回原始值。
我想添加一个新的列,返回最近的日期(在本例中 task_1_completed_date
或者 task_2_completed_date
但实际上有20个任务域)
(CASE WHEN task_1_completed_date IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN task_2_completed_date IS NOT NULL THEN 1 ELSE 0 END
) AS task_completed_total
from (select JSON_EXTRACT_SCALAR(data, '$.task1.date') as task_1_completed_date
JSON_EXTRACT_SCALAR(data, '$.task2.date') as task_2_completed_date
from table
WHERE pet_store = 'london'
)
不知道如何继续,我应该在这里使用子查询来排序任务完成日期吗?
2条答案
按热度按时间cu6pst1q1#
使用订单依据
7jmck4yq2#
我想你可以用groupby和max来获得最近的约会。请看这里:https://docs.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql?view=sql-server-ver15