str_sql = “SELECT s.stock_name, (COALESCE(t1.count, 0) + COALESCE(t2.count, 0) + COALESCE(t3.count, 0)) / 3.0 AS count_age, d.date1, COALESCE(t1.count, 0) AS count1, d.date2, COALESCE(t2.count, 0) AS count2, d.date3, COALESCE(t3.count, 0) AS count3, COALESCE(t1.count, 0) - COALESCE(t2.count, 0) AS numer FROM (SELECT DISTINCT stock_name FROM t_人qi榜) s CROSS JOIN (SELECT MAX(CASE WHEN rn = 1 THEN trade_date END) AS date1, MAX(CASE WHEN rn = 2 THEN trade_date END) AS date2, MAX(CASE WHEN rn = 3 THEN trade_date END) AS date3 FROM ( SELECT trade_date, ROW_NUMBER() OVER (ORDER BY trade_date DESC) AS rn FROM (SELECT DISTINCT trade_date FROM t_人qi榜) AS d ) AS ranked_dates WHERE rn <= 3) d LEFT JOIN t_人qi榜 t1 ON s.stock_name = t1.stock_name AND t1.trade_date = d.date1 LEFT JOIN t_人qi榜 t2 ON s.stock_name = t2.stock_name AND t2.trade_date = d.date2 LEFT JOIN t_人qi榜 t3 ON s.stock_name = t3.stock_name AND t3.trade_date = d.date3 WHERE NOT (COALESCE(t1.count, 0) = 0 AND COALESCE(t2.count, 0) = 0) ORDER BY count_age DESC;”