Мне нужно добавить столбец ранга в оператор MySQL SELECT ниже:
SELECT
cbn.neighborhoods AS <code>neighborhoods</code>,
COUNT(*) AS <code>offenses</code>,
na.neighborhoods,
TRUNCATE(
((na.neighborhood_area_in_sq_meters /1000) * 0.000386102159), 2
) AS <code>sq_miles</code>,<br>
(COUNT(*) / ((na.neighborhood_area_in_sq_meters /1000) * 0.000386102159)) AS <code>offenses_per_sq_mile</code>
FROM
wp_crime_by_neighborhood AS <code>cbn</code>,
wp_neighborhood_area AS <code>na</code>
WHERE
cbn.offense = 'AWD'
AND
cbn.neighborhoods = na.neighborhoods
GROUP BY
cbn.neighborhoods
ORDER BY
offenses_per_sq_mile DESC;
Таблицы следующие:
Имя таблицы: wp_crime_by_neighborhood
нид бигинт (11)
ccn int (10)
окрестности варчар (50)
reportdatetime datetime
результат tinyint (1)
десятичная широта (11,9)
десятичная долгота (10,8)
нарушение varchar (30)
Название таблицы: wp_neighborhood_area
окрестность_индекса smallint (3)
окрестности варчар (50)
district_area_in_sq_meters int (10)
Я бы хотел оценивать на основе этого бита: (COUNT (*) / ((na.neighborhood_area_in_sq_meters / 1000) * 0.000386102159)) AS offenses_per_sq_mile.
Постер Stack Overflow, a1ex07, помог мне с еще одним вопросом ранжирования и предложил следующее решение:
SELECT t1.name, (SELECT COUNT(*) FROM table_1 t2 WHERE t2.score >
t1.score) +1
AS rnk
FROM table_1 t1
Спасибо, a1ex07! Я не уверен, как применить вышеупомянутое решение в этом случае. В прошлом у меня был простой случай с оценками, это немного сложнее. Есть предложения?