sql >> Base de Datos >  >> RDS >> Mysql

¿Puedo usar una columna que he seleccionado más tarde en una consulta?

Usar:

SELECT `id`,
       `hits` + `other_hits` AS `total_hits`
  FROM `something`
HAVING `total_hits` > 30

El primer MySQL que permite referencias a alias de columna es GROUP BY cláusula; cláusulas posteriores a las referencias de soporte (HAVING , ORDER BY ). La mayoría de las demás bases de datos no admiten hacer referencia a un alias de tabla antes de ORDER BY , que normalmente requiere el uso de una tabla derivada/vista en línea:

SELECT t.id, t.total_hits
  FROM (SELECT `id`,
               `hits` + `other_hits` AS `total_hits`
          FROM `something`) t
 WHERE t.total_hits > 30

De lo contrario, debe reutilizar la lógica en la cláusula WHERE:

SELECT `id`,
       `hits` + `other_hits` AS `total_hits`
  FROM `something`
 WHERE `hits` + `other_hits` > 30