假设我们有一个名为 date
的摘要表,其中包含以下字段: user_id
, song_id
, count
和 daily
。它在每天结束时显示她的历史记录中有多少次用户听过某首歌。
第二个名为 daily
的表记录用户是否收听特定歌曲。该表用于更新第一个表。如果一首歌在 summary
表中但不在 summary
表中,则会在SELECT A.USERID, A.SONG, SUM(A.COUNT) COUNT
FROM
(SELECT USERID, SONG, COUNT FROM SUMMARY
UNION ALL
SELECT USERID, SONG, COUNT FROM DAILY WHERE DATE = NOW()) A
GROUP BY A.USERID, A.SONG
表中创建一个具有相应计数的新记录。
问题/问题我正在查看一些示例解决方案,并且不确定此答案中的特定符号:
COUNT
为什么以下行中 A.COUNT
旁边有 SUM(A.COUNT) COUNT
: A
?同样,以下行中的 DATE = NOW())
后 WHERE DATE = NOW()) A
位于何处:{{1}}?
答案 0 :(得分:0)
它是别名。该示例将表或字段名称别名为其他内容(在本例中为A
)。
官方MySQL文档将在此为您提供帮助:https://dev.mysql.com/doc/refman/5.7/en/select.html
引用(我强调):
可以使用
select_expr
为AS alias_name
提供别名。别名是 用作表达式的列名,可以在GROUP BY
中使用,ORDER BY
或HAVING
条款。例如:
SELECT CONCAT(last_name, ', ', first_name) AS full_name FROM mytable ORDER BY full_name;
别名时,
AS
关键字可选 select_expr带有标识符。前面的例子可能是 写得像这样:
SELECT CONCAT(last_name, ', ', first_name) full_name FROM mytable ORDER BY full_name;
答案 1 :(得分:0)
这些被称为别名,只需重命名该列即可。在Sum(A.Count)的情况下,这是必需的,因为函数的输出没有列名。
这与编写
无关SUM(A.Count) AS Count,
或
SUM(A.Count) "Count",