当前位置: 首页 > 面试题库 >

MySQL:计算列

周辉
2023-03-14
问题内容

我刚开始使用SQL并遇到了问题。

在我的数据库中,我目前有两个表,电影院和剧院。我正在尝试在Cinemas表中创建一列“#Theatres#”,该表计算着Cinemas表中具有与Cinemas表中的Cinema相同的CinemaID(外键)的Theaters表中的剧院数量。我将其用作SQL查询:

SELECT cinemas.CinemaID,Town,COUNT(*) AS '# of Theatres'
FROM cinemax.cinemas,cinemax.theatres
WHERE cinemas.CinemaID=theatres.CinemaID
GROUP BY cinemas.CinemaID;

但是想知道是否有可能在Cinemas表中创建一列,该列会自动执行上述查询并将值插入到每一行中。

这将是一个非常小的数据库,因此速度并不是真正的问题,我只想学习如何制作这样的计算列(即使可能的话)。


问题答案:

有可能的。但您不应该这样做。

这就是所谓的非规范化-通常根本不是一个好主意。

但是有时候,由于某些奇怪的原因,您可能绝对需要对某些东西进行非规范化处理(您的示例远没有充分的理由)。在这种情况下,您需要添加触发器代码以在系统中任何可能影响结果的变化发生时自动管理值。



 类似资料:
  • 问题内容: 在MySQL中是否可以对2行的计算进行排序?例如,我有2行,并且我正在尝试执行以下操作: 这不会引发错误,但是也不会根据该计算结果进行排序。有没有办法做到这一点,还是我必须将lp / ap存储在数据库中? 问题答案: 是的,这是可行的,而且确实可行。查看以下测试: 将返回相同的结果。

  • 问题内容: 我有4个项目MySQL数据库:(数值),和。 在我的报告中,我需要通过“调查”中的数字来计算已参加调查的“雇员”的百分比。 这是我现在的声明: 表格如下: 我想按参加调查的人数来计算谁所占的百分比。即,如以上数据所示,分别为0%和95%。 问题答案: 尝试这个 在这里演示

  • 我有一个包含4个项的MySQL数据库:(数值)、、和。 在我的中,我需要根据“surveys”中的数字来计算接受调查的“employees”的百分比。 这就是我现在的说法: 下面是表格的原样: 我想根据中的数字计算参加调查的的百分比。即,如上面的数据所示,将为0%,将为95%。

  • 问题内容: 我有一个像这样的mysql表: 当访问者访问该网站时,它将其访问者ID和页面ID存储为一行。 我试图提取恰好X次访问该网站的访问者数量。(用于图表)。那么有多少人只访问一页,有多少人访问了2页… 到目前为止,我有: 但是我不知道该怎么做下一部分的计数。 可以作为MySQL查询吗? 问题答案: 我可以这样解决: 这一点很重要。

  • 问题内容: 我有一个包含以下数据的表: 现在,我需要一个查询,该查询给出以下结果: 是否可以通过一个查询而不使用触发器或存储过程来做到这一点? 问题答案: 简短的回答,是的 更长的答案是,您可以使用变量在向下迭代行时对其进行计数,即 将确保在开始之前@Balance被初始化为0。然后,对于每一行,将@Balance设置为,然后输出计算出的值。 同样值得确定的是ORDER是一致的,否则Balance

  • 问题内容: 我有这个MySQL查询: 返回如下内容: 我真正想要的是末尾的另一列显示运行总计: 这可能吗? 问题答案: 也许这对您来说是一个更简单的解决方案,并且可以防止数据库不得不执行大量查询。这仅执行一个查询,然后在一次通过中对结果进行一点数学运算。 这将为您提供一个额外的RT(运行总计)列。不要错过顶部的SET语句来首先初始化运行的total变量,否则您将只获得一列NULL值。