Private
Public Access
1
0
Files
data-api/query.sql
2023-12-10 21:02:04 -08:00

71 lines
1.6 KiB
SQL

-- name: GetZoneStatsData :many
SELECT zc.date, z.name, zc.ip_version, count_active, count_registered, netspeed_active
FROM zone_server_counts zc USE INDEX (date_idx)
INNER JOIN zones z
ON(zc.zone_id=z.id)
WHERE date IN (SELECT max(date) from zone_server_counts)
ORDER BY name;
-- name: GetServerNetspeed :one
select netspeed from servers where ip = ?;
-- name: GetZoneStatsV2 :many
select zone_name, netspeed_active+0 as netspeed_active FROM (
SELECT
z.name as zone_name,
SUM(
IF (deletion_on IS NULL AND score_raw > 10,
netspeed,
0
)
) AS netspeed_active
FROM
servers s
INNER JOIN server_zones sz ON (sz.server_id = s.id)
INNER JOIN zones z ON (z.id = sz.zone_id)
INNER JOIN (
select zone_id, s.ip_version
from server_zones sz
inner join servers s on (s.id=sz.server_id)
where s.ip=?
) as srvz on (srvz.zone_id=z.id AND srvz.ip_version=s.ip_version)
WHERE
(deletion_on IS NULL OR deletion_on > NOW())
AND in_pool = 1
AND netspeed > 0
GROUP BY z.name)
AS server_netspeed;
-- name: GetServerByID :one
select * from servers
where
id = ?;
-- name: GetServerByIP :one
select * from servers
where
ip = sqlc.arg(ip);
-- name: GetMonitorByName :one
select * from monitors where tls_name = ?;
-- name: GetMonitorsByID :many
select * from monitors
where id in (sqlc.slice('ids'));
-- name: GetServerLogScores :many
select * from log_scores
where
server_id = ?
order by ts desc
limit ?;
-- name: GetServerLogScoresByMonitorID :many
select * from log_scores
where
server_id = ? AND
monitor_id = ?
order by ts desc
limit ?;