列上的Postgresql操作

时间:2017-09-03 20:22:07

标签: postgresql

我想计算劳动人民的日常收入。我用pgadmin III和postgresql 9.5.8创建了一个postgresql数据库,人们可以输入每天的日期,开始时间和结束时间以及费率小时。根据这些信息,我希望数据库计算工作时间(开始 - 结束)和每日收入(工作时间*费率小时)。我有什么想法可以在pgadmin III上做到这一点吗?我知道如何在使用查询函数时执行此操作,但我不希望它作为查询而是作为数据库中的列。可能吗 ?谢谢。 postgresql database

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要一个表格,其中某些列根据其他列计算出值。

执行此操作的一种方法是使用View。它可以像常规表一样使用,但它的列值仅在您在某些查询中使用时计算。

假设example表格中包含start_hourend_hourrate列, 根据您的解释,这是一个简单的视图:

CREATE VIEW example_view AS
SELECT
  start_date, start_hour, end_hour, rate,
  (end_hour-start_hour) AS work_time,
  (end_hour-start_hour) * rate AS daily_income
FROM example;

您可以像使用常规表一样使用它(选择表单,连接到其他表等)。这是a fiddle的示例,也是类似的视图,没有work_time计算的重复逻辑。