Normalize callsign grouping in most worked query

Updates SQL logic to group callsigns by their base identifier, stripping suffixes like /P, /MM, /AM, /QRP, /LH, and /BCN. This ensures contacts are aggregated correctly for operators using such suffixes.
这个提交包含在:
Peter Goodhall 2025-08-23 21:21:01 +01:00
父节点 76f55f7f27
当前提交 c7bef2db07

查看文件

@ -27,7 +27,12 @@ class Mostworked_model extends CI_Model
$todate = isset($filters['todate']) ? $filters['todate'] : '';
$sql = "SELECT
col_call as callsign,
CASE
WHEN col_call REGEXP '/[PMAQLB]$|/MM$|/AM$|/QRP$|/LH$|/BCN$' THEN
SUBSTRING(col_call, 1, LOCATE('/', col_call) - 1)
ELSE
col_call
END as callsign,
COUNT(*) as contact_count,
MIN(col_time_on) as first_qso,
MAX(col_time_on) as last_qso,
@ -64,9 +69,14 @@ class Mostworked_model extends CI_Model
$sql .= " AND DATE(col_time_on) <= '" . $this->db->escape_str($todate) . "'";
}
$sql .= " GROUP BY col_call
$sql .= " GROUP BY CASE
WHEN col_call REGEXP '/[PMAQLB]$|/MM$|/AM$|/QRP$|/LH$|/BCN$' THEN
SUBSTRING(col_call, 1, LOCATE('/', col_call) - 1)
ELSE
col_call
END
HAVING contact_count >= " . $min_qsos . "
ORDER BY contact_count DESC, col_call ASC";
ORDER BY contact_count DESC, callsign ASC";
$query = $this->db->query($sql);