PostgreSQL āĻāĻŋāĻ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ-āĻāϰ āĻāύā§āϝ: āϏāĻšāĻ āĻāϝāĻŧā§āύ, āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϏā§āĻā§āϰā§āύ
āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ-āĻāϰ āĻāύā§āϝ PostgreSQL āĻāĻŋāĻ āĻāϝāĻŧā§āύ āϏāĻšāĻ āĻāϰā§, āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ SQL āĻāĻŽāĻžāϝāĻŧ, āĻāĻŦāĻ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϰāĻžāĻā§āĨ¤ āĻāĻāύ āĻāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ, āĻā§āĻāĻžāĻŦā§ āϏāĻāϏā§āĻāϰāĻŖ āĻāϰāĻŦā§āύ, āĻāĻŦāĻ āϰāĻŋāĻĒā§āϰā§āĻ āĻĻā§āϰā§āϤ āϰāĻžāĻāĻŦā§āύ āϤāĻž āĻļāĻŋāĻā§āύāĨ¤

āĻā§āύ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻĻā§āϰā§āϤ āĻāϞā§āĻŽā§āϞ⧠āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ
āĻāĻāĻāĻŋ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰā§āύ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ āϏāĻšāĻ āĻĒā§āϰāĻļā§āύ āĻāϰ⧠āύāĻžāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻž āĻāĻŽāύ āĻāĻāĻāĻŋ āϤāĻžāϞāĻŋāĻāĻž āĻāĻžāϝāĻŧ āϝāĻžāĻā§ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻ āϏāĻžāĻāĻžāύ⧠āϝāĻžāĻŦā§, āϤāĻžāϞāĻŋāĻāĻžāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞ āĻāĻā§ āĻāĻŽāύ āĻā§āĻāĻžāϞ, āĻāĻŦāĻ āĻĒā§āϰāĻžāϝāĻŧāĻ āĻāϝāĻŧā§āĻāĻāĻŋ āĻŦā§āϰā§āĻāĻĄāĻžāĻāύ (āϏā§āĻĨāĻŋāϤāĻŋ āĻ āύā§āϝāĻžāϝāĻŧā§, āĻŽāĻžāϏ āĻāĻŋāϤā§āϤāĻŋāĻ, āĻ āĻĨāĻŦāĻž āĻŽāĻžāϞāĻŋāĻ āĻ āύā§āϝāĻžāϝāĻŧā§)āĨ¤
āĻāĻ āĻŽāĻŋāĻļā§āϰāĻŖāĻ āĻāĻĒāύāĻžāĻā§ āĻāĻŽāύ SQL-āĻāϰ āĻĻāĻŋāĻā§ āĻ ā§āϞ⧠āĻĻā§āϝāĻŧ āϝāĻž āĻā§āϰāĻŽāĻļ āĻŦāĻžāĻĄāĻŧāϤ⧠āĻĨāĻžāĻā§āĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻāĻžāϰ SELECT āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āύāĻžāĻŽ āĻ āĻā§āϝāĻžāĻā§āĻāϰāĻŋ āϝā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāϝāĻŧā§āύ āϝā§āĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ âāĻļā§āϧ⧠āĻ
ā§āϝāĻžāĻāĻāĻŋāĻâ āύāĻŋāϝāĻŧāĻŽ āϝā§āĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āϤāĻžāϰāĻŋāĻ āϰā§āĻā§āĻ, āϤāĻžāϰāĻĒāϰ âāĻā§āϏā§āĻ āϰā§āĻāϰā§āĻĄ āĻŦāĻžāĻĻ āĻĻāĻŋāύâ āĻāϤā§āϝāĻžāĻĻāĻŋāĨ¤ āĻ
āϞā§āĻĒ āϏāĻŽāϝāĻŧā§āϰ āĻŽāϧā§āϝā§, āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻāϏāĻžāĻĨā§ āĻĻā§āĻāĻāĻŋ āĻāĻžāĻ āĻāϰā§: āĻĄā§āĻāĻž āύāĻŋāϝāĻŧā§ āĻāϏāĻž āĻāĻŦāĻ āĻŦāĻŋāĻāύā§āϏ āύāĻŋāϝāĻŧāĻŽ āĻāύāĻā§āĻĄ āĻāϰāĻžāĨ¤
āĻĒā§āϰāĻā§āϤ āĻŦā§āϝāĻĨāĻž āĻāϏ⧠āϝāĻāύ āĻāĻāĻ āύāĻŋāϝāĻŧāĻŽ āĻāĻāĻžāϧāĻŋāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻĒāĻŋ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ âpaidâ āĻāύāĻāϝāĻŧā§āϏāĻā§ āϝ⧠āĻā§āύ⧠āĻĒā§āĻŽā§āύā§āĻ āϤāĻžāϰāĻŋāĻāϝā§āĻā§āϤ āĻāύāĻāϝāĻŧā§āϏ āĻšāĻŋāϏā§āĻŦā§ āĻāĻŖā§āϝ āĻāϰā§, āĻ āύā§āϝāĻāĻŋ âpaidâ āĻāĻŖā§āϝ āĻāϰ⧠āĻā§āύ⧠āϏāĻĢāϞ āĻĒā§āĻŽā§āύā§āĻ āϰā§āĻāϰā§āĻĄ āĻĨāĻžāĻāĻž āĻāύāĻāϝāĻŧā§āϏ āĻšāĻŋāϏā§āĻŦā§āĨ¤ āĻāĻāϝāĻŧāĻ āϝā§āĻā§āϤāĻŋāϝā§āĻā§āϤ āĻļā§āύāĻžāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāĻāύ āĻāĻāĻ āϏāĻŽāϝāĻŧāĻāĻžāϞā§āϰ āĻāύā§āϝ āĻĻā§āĻāĻāĻŋ āϏā§āĻā§āϰā§āύ āĻāĻŋāύā§āύ āĻā§āĻāĻžāϞ āĻĻā§āĻāĻžāϝāĻŧ, āĻāĻŦāĻ āĻā§āĻāĻ āϏāĻāĻā§āϝāĻžāĻā§āϞ⧠āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻāϰ⧠āύāĻžāĨ¤
āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāϞā§āĻŽā§āϞ⧠āĻšāϝāĻŧ āĻāĻžāϰāĻŖ āϤāĻžāĻĻā§āϰ āĻāĻāĻžāϧāĻŋāĻ UI āĻāĻžāĻšāĻŋāĻĻāĻž āĻāĻāϏāĻžāĻĨā§ āϏāϰāĻŦāϰāĻžāĻš āĻāϰāϤ⧠āĻšāϝāĻŧ: āύāĻŽāύā§āϝāĻŧ āĻĢāĻŋāϞā§āĻāĻžāϰ (āϤāĻžāϰāĻŋāĻ, āĻŽāĻžāϞāĻŋāĻ, āϏā§āĻĨāĻŋāϤāĻŋ, āĻ āĻā§āĻāϞ), āĻĒāĻžāĻ āϝā§āĻā§āϝ íā§āĻĄ (āĻā§āϰāĻžāĻšāĻā§āϰ āύāĻžāĻŽ, āĻĒā§āϞā§āϝāĻžāύ, āĻļā§āώ āĻ ā§āϝāĻžāĻāĻāĻŋāĻāĻŋāĻāĻŋ), āϤāĻžāϞāĻŋāĻāĻžāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞ āĻāĻā§ āĻāĻŽāύ āĻā§āĻāĻžāϞ, āĻāĻŦāĻ āĻāĻā§āϏāĻĒā§āϰā§āĻ-āĻĢā§āϰā§āύā§āĻĄāϞāĻŋ āϰā§āĻāĻžāϞā§āĻāϏ āϝā§āĻā§āϞā§āϤ⧠āĻāϞāĻžāĻŽ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻĨāĻžāĻā§āĨ¤
āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ: āĻāĻĒāύāĻžāϰ âOrdersâ āϏā§āĻā§āϰā§āύ orders, customers, order_items, āĻāĻŦāĻ refunds āĻāϝāĻŧā§āύ āĻāϰā§āĨ¤ âRevenueâ āϏā§āĻā§āϰā§āύ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻāĻ āϤāĻž āύāĻāϞ āĻāϰā§, āĻāĻŋāύā§āϤ⧠āĻāĻāĻā§ āĻāĻŋāύā§āύ refund āύāĻŋāϝāĻŧāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāϝāĻŧā§āĻ āĻŽāĻžāϏ āĻĒāϰā§, āĻāĻāĻļāĻŋāĻ āϰāĻŋāĻĢāĻžāύā§āĻĄ āĻāĻŋāĻāĻžāĻŦā§ āĻā§āϰāĻŋāĻ āĻāϰāĻŦā§āύâāĻāϰ āĻŽāϤ āĻāĻāĻāĻŋ āĻā§āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻ āύā§āĻ āϏā§āĻā§āϰā§āύ⧠āĻāĻāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻĄāĻŋāĻ āĻ āĻĒā§āύāϰāĻžāϝāĻŧ āĻā§āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻŋāĻ āϏāĻšāĻžāϝāĻŧāϤāĻž āĻāϰ⧠āĻāĻžāϰāĻŖ āĻāĻā§āϞ⧠āĻāĻĒāύāĻžāĻā§ āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž āĻāϝāĻŧā§āύ āĻ āύāĻŋāϝāĻŧāĻŽāĻā§āϞ⧠āĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻŦā§āϝāĻā§āϤ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āϏā§āĻā§āϰā§āύāĻā§āϞ⧠āϏāϰāϞ āĻĨāĻžāĻā§, āĻāĻŦāĻ āϏāĻāĻā§āϝāĻžāĻā§āϞ⧠āĻāĻāϰāĻāĻŽ āĻĨāĻžāĻā§āĨ¤
āĻāĻŋāĻ āϏāϰāϞāĻāĻžāĻŦā§: āĻāĻŋ āϤāĻž āĻāĻŦāĻ āĻāĻŋ āύāϝāĻŧ
āĻāĻāĻāĻŋ PostgreSQL āĻāĻŋāĻ āĻšāϞ⧠āĻāĻāĻāĻŋ āύāĻžāĻŽāĻā§āϤ āĻā§āϝāĻŧā§āϰāĻŋāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§ āĻāϝāĻŧāĻāĻŋ āĻāϝāĻŧā§āύāϏāĻš āĻāĻāĻ āĻŦāĻĄāĻŧ SELECT āĻĒā§āϏā§āĻ āĻāϰāĻžāϰ āĻŦāĻĻāϞā§, āĻāĻĒāύāĻŋ āĻāĻāĻŦāĻžāϰ āϏā§āĻāĻŋ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ āĻāĻŦāĻ āĻā§āĻŦāĻŋāϞā§āϰ āĻŽāϤ āĻāĻāĻŋāĻā§ āĻā§āϝāĻŧā§āϰāĻŋ āĻāϰā§āύāĨ¤ āĻāϤ⧠āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ SQL āĻĒāĻĄāĻŧāϤ⧠āϏāĻšāĻ āĻšāϝāĻŧ āĻāĻŦāĻ âāĻā§ āĻā§āĻŖā§ āĻāĻāĻāύ āĻ
ā§āϝāĻžāĻā§āĻāĻŋāĻ āĻāĻžāϏā§āĻāĻŽāĻžāϰâ āĻāϰ āĻŽāϤ āϏāĻāĻā§āĻāĻžāĻā§āϞ⧠āĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĨāĻžāĻā§āĨ¤
āĻ
āύā§āĻ āĻāĻŋāĻ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āύāĻžāĨ¤ āϝāĻāύ āĻāĻĒāύāĻŋ āĻāĻžāϞāĻžāύ SELECT * FROM my_view, PostgreSQL āĻāĻŋāĻ āĻĄā§āĻĢāĻŋāύāĻŋāĻļāύ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰ⧠āĻ āĻŦā§āϏ āĻā§āĻŦāĻŋāϞāĻā§āϞā§āϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āĻāύā§āĻĄāĻžāϰāϞāĻžāĻāύāĻŋāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻžāϞāĻžāϝāĻŧāĨ¤ āϤāĻžāĻ āĻāĻāĻāĻž āϏāĻžāϧāĻžāϰāĻŖ āĻāĻŋāĻ āĻā§āϝāĻžāĻļ āύāϝāĻŧāĨ¤ āĻāĻāĻž āĻāĻāĻāĻŋ āĻĒā§āύāĻāĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝ āϏāĻāĻā§āĻāĻžāĨ¤
Materialized views āĻāĻŋāύā§āύâāĻāĻā§āϞ⧠āϰā§āĻāĻžāϞā§āĻāϏ āĻĄāĻŋāϏā§āĻā§ āϏā§āĻā§āϰ āĻāϰā§, āĻāĻāϧāϰāύā§āϰ āϏā§āύā§āϝāĻžāĻĒāĻļāĻā§āϰ āĻŽāϤāĨ¤ āĻāϤ⧠āϰāĻŋāĻĒā§āϰā§āĻ āĻ āύā§āĻ āĻĻā§āϰā§āϤ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠āĻĄā§āĻāĻž āϤāĻāύāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāĻŦā§ āϝāĻāύ āĻāĻĒāύāĻŋ materialized view āϰāĻŋāĻĢā§āϰā§āĻļ āĻāϰāĻŦā§āύāĨ¤ āĻĻā§āϰā§āϤāϤāĻž āĻŦāύāĻžāĻŽ āϤāĻžāĻāĻž āĻĄā§āĻāĻžâāĻāĻāĻžāĻ āĻā§āϰā§āĻĄāĻ āĻĢāĨ¤
āĻāĻŋāĻ āĻāĻžāϞ⧠āĻāĻžāĻ āĻāϰā§:
- āĻāĻāĻŋāϞ āĻāϝāĻŧā§āύ āĻ āĻāĻŖāĻŋāϤ āĻāϰāĻž āĻāϞāĻžāĻŽāĻā§āϞ⧠āĻāĻāĻžāϧāĻŋāĻ āϏā§āĻā§āϰā§āύ⧠āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ
- āϏāĻāĻā§āĻāĻžāĻā§āϞā§āĻā§ āϏāĻā§āĻāϤāĻŋāĻļā§āϞ āϰāĻžāĻāĻžāϰ āĻāύā§āϝ (āĻāĻāĻāĻŋ āĻ āĻŋāĻ āĻāϰāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏāĻŦ āύāĻŋāϰā§āĻāϰāĻļā§āϞ āϰāĻŋāĻĒā§āϰā§āĻā§ āĻāĻĒāĻĄā§āĻ āĻšāĻŦā§)
- āϏāĻāĻŦā§āĻĻāύāĻļā§āϞ āĻāϞāĻžāĻŽāĻā§āϞ⧠āϞā§āĻāĻŋāϝāĻŧā§ āϰā§āĻā§ āĻā§āĻŦāϞ āϰāĻŋāĻĒā§āϰā§āĻā§ āĻĻāϰāĻāĻžāϰāĻŋ āĻĢāĻŋāϞā§āĻĄ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻžāϰ āĻāύā§āϝ
- āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻŋāĻŽāĻā§ āĻāĻāĻāĻŋ āϏāϰāϞ âāϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻāĻŋāĻŽāĻžâ āĻĻā§āϝāĻŧāĻžāϰ āĻāύā§āϝ
āĻāĻŋāĻ āĻāĻžāĻĻā§ā§āĻĒāύā§āύāĻāĻžāĻŦā§ āĻ āĻŋāĻ āĻāϰāĻŦā§ āύāĻž:
- āϧā§āϰ āĻŦā§āϏ āĻā§āĻŦāĻŋāϞ (āĻāĻāĻāĻŋ āĻāĻŋāĻ āϤāĻŦā§āĻ āϏā§āĻā§āϞ⧠āĻĒāĻĄāĻŧā§)
- āĻāϝāĻŧā§āύ āĻā§āĻā§āϞ⧠āĻŦāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϞāĻžāĻŽāĻā§āϞā§āϰ āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ āĻāύā§āĻĄā§āĻā§āϏ
- āĻāĻŽāύ āĻĢāĻŋāϞā§āĻāĻžāϰ āϝāĻž āĻāύā§āĻĄā§āĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāύā§āϧ āĻāϰ⧠āĻĻā§āϝāĻŧ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, indexed āĻāϞāĻžāĻŽā§
WHERE-āĻ āĻĢāĻžāĻāĻļāύ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž)
āϝāĻĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāĻĒā§āϰā§āĻā§ âāĻāĻžāϏā§āĻāĻŽāĻžāϰā§āϰ āύāĻžāĻŽ āĻ paid status āϏāĻš ordersâ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ, āĻāĻāĻāĻŋ āĻāĻŋāĻ āϏā§āĻ āĻāϝāĻŧā§āύ āĻ āϏā§āĻā§āϝāĻžāĻāĻžāϏ āϞāĻāĻŋāĻāĻā§ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄāĻžāĻāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŋāύā§āϤ⧠āϝāĻĻāĻŋ orders āĻŦāĻĄāĻŧ āĻāĻŦāĻ customer_id āĻŦāĻž created_at-āĻ āĻāύā§āĻĄā§āĻā§āϏ āύāĻž āĻĨāĻžāĻā§, āϤāĻāύ āĻāĻŋāĻ āϤāĻŦā§āĻ āϧā§āϰ āĻĨāĻžāĻāĻŦā§ āϝāϤāĻā§āώāĻŖ āύāĻž āĻŦā§āϏ āĻā§āĻŦāĻŋāϞ āĻāĻŋāĻāύ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāĻāύ āĻāĻŋāĻ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰāĻŋāύā§āϰ āĻāύā§āϝ āϏāĻ āĻŋāĻ āĻā§āϞ
āϝāĻāύ āĻāĻĒāύāĻžāϰ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰā§āύāĻā§āϞ⧠āĻāĻāĻ āĻāϝāĻŧā§āύ, āĻĢāĻŋāϞā§āĻāĻžāϰ āĻ āĻĄā§āϰāĻžāĻāĻāĻĄ āĻĢāĻŋāϞā§āĻĄāĻā§āϞ⧠āĻŦāĻžāϰāĻŦāĻžāϰ āϰāĻŋāĻā§āϝāĻŧā§āϝāĻžāϰ āĻāϰ⧠āϤāĻāύ āĻāĻŋāĻ āĻāĻĒāϝā§āĻā§āϤāĨ¤ āĻĻā§āϰā§āĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻāĻžāĻāϞ āĻ āĻāĻā§āϏāĻĒā§āϰā§āĻā§ āĻāĻĒāĻŋ āĻāϰāĻžāϰ āĻŦāĻĻāϞā§, āĻāĻāĻŦāĻžāϰ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰā§āύ āĻāĻŦāĻ āϏā§āĻā§āϰā§āύāĻā§āϞ⧠āϏā§āĻ āύāĻžāĻŽāĻā§āϤ āĻĄā§āĻāĻžāϏā§āĻ āĻĒāĻĄāĻŧā§āĻāĨ¤
āĻāĻŋāĻ āϤāĻāύ āĻāĻžāϞ⧠āĻāĻžāĻ āĻāϰ⧠āϝāĻāύ āĻŦāĻŋāĻāύā§āϏ āϞāĻāĻŋāĻ āϏā§āĻā§āώā§āĻŽāĻāĻžāĻŦā§ āĻā§āϞ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻĨāĻžāĻā§āĨ¤ āϝāĻĻāĻŋ âactive customerâ āĻŽāĻžāύ⧠âāĻāϤ 90 āĻĻāĻŋāύ⧠āĻ āύā§āϤāϤ āĻāĻāĻāĻŋ paid invoice āĻāĻā§ āĻāĻŦāĻ churned āĻšāĻŋāϏāĻžāĻŦā§ āĻŽāĻžāϰā§āĻ āĻāϰāĻž āύāϝāĻŧâ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻāĻžāύ āύāĻž āĻĒāĻžāĻāĻāĻāĻŋ āϏā§āĻā§āϰā§āύ āĻāϞāĻžāĻĻāĻž āĻāϞāĻžāĻĻāĻž āĻāĻžāĻŦā§ āϏā§āĻāĻŋ āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻ āĻāϰā§āĻāĨ¤ āĻāĻ āĻāĻŋāĻāϤ⧠āϰāĻžāĻā§āύ, āϏāĻŦ āϰāĻŋāĻĒā§āϰā§āĻ āϏāĻā§āĻāϤāĻŋāĻļā§āϞ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻāĻŋāĻ āϤāĻāύāĻ ×Š×××׊ āĻāϰ⧠āϝāĻāύ āĻāĻĒāύāĻžāϰ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻā§āϞ (āĻŦāĻž UI āĻŦāĻŋāϞā§āĻĄāĻžāϰ) āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻāϞāĻžāĻŽ āύāĻžāĻŽ āĻāĻžāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ āϏā§āĻā§āϰā§āύ customer_name, mrr, āĻŦāĻž last_payment_at-āĻāϰ āĻŽāϤ āĻĢāĻŋāϞā§āĻĄā§ āύāĻŋāϰā§āĻāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŋāĻ āĻĻāĻŋāϝāĻŧā§ āĻāĻĒāύāĻŋ āĻāĻ āĻāϞāĻžāĻŽāĻā§āϞ⧠āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϰāĻžāĻāĻŦā§āύ āϝāϤāĻā§āώāĻŖ āĻāĻŋāĻ-āϰ āĻā§āĻā§āϤāĻŋ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§āύāĨ¤
āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§, āϝāĻāύ āĻāĻĒāύāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻāϝāĻŧā§āύ āĻ āĻŽā§āĻā§āϰāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻļā§āϝāĻŧāĻžāϰā§āĻĄ āϏāĻāĻā§āĻāĻž āĻāĻžāύ āĻāĻŦāĻ āϏā§āĻā§āϰā§āύ āĻ āĻāĻā§āϏāĻĒā§āϰā§āĻā§āϰ āĻāύā§āϝ āĻĒāϰāĻŋāώā§āĻāĻžāϰ, āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽāĻžāύāϝā§āĻā§āϝ āĻāϞāĻžāĻŽ āϏā§āĻ āĻāĻžāύâāϤāĻāύ āĻāĻŋāĻ āϏāĻ āĻŋāĻ āĻā§āϞāĨ¤
āĻāĻĻāĻžāĻšāϰāĻŖ: āĻāĻāĻāĻŋ āϏāĻžāĻĒā§āϰā§āĻ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ âāĻāĻžāϏā§āĻāĻŽāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻā§āϞāĻž āĻāĻŋāĻāĻŋāĻâ āĻĻā§āĻāĻžāϝāĻŧ, āĻāϰ āĻāĻāĻāĻŋ āĻĢāĻžāĻāύā§āϝāĻžāύā§āϏ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ âāĻ
āĻŦā§āϤāĻžāύ āĻāύāĻāϝāĻŧā§āϏāϏāĻš āĻāĻžāϏā§āĻāĻŽāĻžāϰâ āĻĻā§āĻāĻžāϝāĻŧāĨ¤ āĻāĻāϝāĻŧā§āĻ āĻāĻāĻ āĻāĻžāϏā§āĻāĻŽāĻžāϰ āĻāĻāĻĄā§āύā§āĻāĻŋāĻāĻŋ āĻāϝāĻŧā§āύ, āĻāĻāĻ âis_activeâ āϞāĻāĻŋāĻ, āĻāĻŦāĻ āĻāĻāĻ āĻ
ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻŽāĻžāϞāĻŋāĻ āĻĢāĻŋāϞā§āĻĄ āĻāĻžāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ reporting_customers āĻāĻŋāĻ āĻāĻāĻŦāĻžāϰ⧠āĻāĻ āϏāĻŦ āĻĢāĻŋāϞā§āĻĄ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻā§āϰā§āύ āϤāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻā§āĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āϝā§āĻ āĻāϰā§āĨ¤
āĻāĻāύ āĻāĻŋāĻ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻ āύā§āϝāĻžāύā§āϝ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ
āĻāĻŋāĻāĻā§āϞ⧠āĻāĻžāϞ⧠āϝāĻāύ āĻ āύā§āĻ āϏā§āĻā§āϰā§āύ āĻāĻāĻ āĻāϝāĻŧā§āύ āĻ āϏāĻāĻā§āĻāĻž āĻāĻžāϝāĻŧāĨ¤ āĻāĻŋāύā§āϤ⧠āϝāĻĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāĻĒā§āϰā§āĻ āĻāϞāĻžāĻĻāĻž âāϏā§āύā§āĻĢā§āϞā§āĻâ āĻšāϝāĻŧ, āĻāĻŋāĻ āĻāĻāĻāĻŋ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻāĻŋāϞāϤāĻž āϞā§āĻāĻŋāϝāĻŧā§ āϰāĻžāĻā§ āĻŦāϰāĻ āϤāĻž āĻāĻŽāĻžāϝāĻŧ āύāĻžāĨ¤
āĻāĻŋāĻ āĻāĻžāϰāĻžāĻĒ āĻĢāĻŋāĻ āϝāĻāύ āĻĒā§āϰāĻā§āϤ āĻāĻžāĻāĻāĻŋ āϏā§āĻā§āϰā§āύāĻāĻŋāϤā§āϤāĻŋāĻ āĻāĻŋāύā§āύ āĻĢāĻŋāϞā§āĻāĻžāϰ, āĻā§āϰā§āĻĒāĻŋāĻ āĻ āϏāĻŽāϝāĻŧ āĻāĻāύā§āĻĄā§ āĻĻāϰāĻāĻžāϰ āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϤāĻāύ āĻāĻŽāύ āĻāϞāĻžāĻŽ āϝā§āĻ āĻāϰāϤ⧠āĻļā§āϰ⧠āĻāϰāĻŦā§āύ âāĻāĻžāϏā§āĻ āĻāύ āĻā§āϏâ āĻŦāϞā§, āĻāĻŦāĻ āĻāĻŋāĻ āĻšāϝāĻŧā§ āϝāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŋāĻā§āύ āϏāĻŋāĻā§āĻ āĻā§āϝāĻŧā§āϰāĻŋ āϝāĻž āĻā§āĻ āĻĒā§āϰā§āĻĒā§āϰāĻŋ āĻŦā§āĻā§ āύāĻžāĨ¤
āĻāĻŋāĻ āĻ āύā§āĻĒāϝā§āĻā§āϤ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻžāϧāĻžāϰāĻŖ āϞāĻā§āώāĻŖāĻā§āϞā§:
- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻāĻŋāύā§āύ
GROUP BY, āϤāĻžāϰāĻŋāĻ āĻŦāĻžāĻā§āĻ, āĻŦāĻž âtop Nâ āϞāĻāĻŋāĻ āĻāĻžāϝāĻŧ - āĻāĻŋāĻ āĻĄāĻāύāĻāĻžāύā§āĻ āĻāϝāĻŧā§āύ⧠āĻŦāĻžāĻĄāĻŧā§ āĻāĻžāϰāĻŖ āĻāĻāĻŋ āĻāĻāϏāĻžāĻĨā§ āϏāĻŦ āĻāĻŋāĻŽāĻā§ āϏāĻžāϰā§āĻ āĻāϰāϤ⧠āĻāĻžāϝāĻŧ
- āĻāĻĒāύāĻŋ āĻāĻĄāĻŧāĻž āϰā§-āϞā§āĻā§āϞ āϏāĻŋāĻāĻŋāĻāϰāĻŋāĻāĻŋ āĻāĻžāύ āĻāĻŦāĻ āĻāĻŋāĻāĻāĻŋ RLS āĻ āϧā§āύ⧠āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāϰāĻŖ āĻāϰ⧠āϤāĻžāϤ⧠āĻĒā§āϰā§āĻĒā§āϰāĻŋ āύāĻŋāĻļā§āĻāĻŋāϤ āύāύ
- āĻāĻĒāύāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϝāĻŧā§āύā§āĻ-āĻāύ-āĻāĻžāĻāĻŽ āϏāĻāĻā§āϝāĻžāĻā§āϞāĻŋ āĻāĻžāύ (âāĻŽāϧā§āϝāϰāĻžāϤ⧠āĻšāĻŋāϏāĻžāĻŦā§â), āĻāĻŋāύā§āϤ⧠āĻŦā§āϏ āĻā§āĻŦāĻŋāϞāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāĻā§āĻā§
- āĻā§āϝāĻŧā§āϰāĻŋ āĻā§āĻŦāϞ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ
WHERE-āĻ āĻĻā§āϰā§āϤ āĻāĻŦāĻ āĻŦāĻŋāϏā§āϤā§āϤ āϏā§āĻā§āϝāĻžāύā§āϰ āĻāύā§āϝ āϧā§āϰ
āĻāĻ āĻā§āώā§āϤā§āϰā§, āĻāĻžāĻā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞāĻžāύ⧠āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŦā§āĻā§ āύāĻŋāύāĨ¤ āĻĻā§āύāύā§āĻĻāĻŋāύ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻāĻŋāĻ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§āϰ āĻāύā§āϝ āϝāĻž āĻĻā§āϰā§āϤ āĻ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϏāĻāĻā§āϝāĻž āĻāĻžāϝāĻŧ, materialized view āĻŦāĻž āĻļāĻŋāĻĄāĻŋāĻāϞāĻā§āϤ āϏāĻžāĻŽāĻžāϰāĻŋ āĻā§āĻŦāĻŋāϞ āĻĒā§āϰāĻžāϝāĻŧāĻ āϞāĻžāĻāĻ āĻāĻŋāĻāϝāĻŧā§āϰ āĻā§āϝāĻŧā§ āĻāĻžāϞāĨ¤
āĻ āύā§āϝ āĻŦāĻŋāĻāϞā§āĻĒ āĻšāĻŋāϏā§āĻŦā§ āĻĒā§āϰāĻžāϝāĻŧāĻ āĻāĻžāϞ āĻāĻžāĻ āĻāϰā§:
- āĻĒā§āϰāĻŋ-āĻāĻŽā§āĻĒāĻŋāĻāĻā§āĻĄ āĻā§āĻāĻžāϞāĻā§āϞā§āϰ āĻāύā§āϝ materialized views (āĻāĻŖā§āĻāĻž āĻŦāĻž āύāĻžāĻāĻāϞāĻŋ āϰāĻŋāĻĢā§āϰā§āĻļ)
- āĻŦāĻĄāĻŧ āĻāĻā§āύā§āĻ āĻā§āĻŦāĻŋāϞāĻā§āϞā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻŦ āĻĻā§āĻŦāĻžāϰāĻž āĻŽā§āĻāύāĻā§āĻāύ āĻāϰāĻž āϏāĻžāĻŽāĻžāϰāĻŋ āĻā§āĻŦāĻŋāϞ
- āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻā§āϰā§āύā§āϰ āĻāύā§āϝ āĻā§āĻ, āĻāĻĻā§āĻĻā§āĻļā§āϝāĻāĻŋāϤā§āϤāĻŋāĻ āĻāĻŋāĻ āϏāĻš āĻāĻāĻāĻŋ āĻĄā§āĻĄāĻŋāĻā§āĻā§āĻĄ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻāĻŋāĻŽāĻž
- āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āĻāĻāĻŋāϞ āĻšāϞ⧠security-definer āĻĢāĻžāĻāĻļāύ āĻŦāĻž āϝāϤā§āύ āύāĻŋāϝāĻŧā§ āύāĻāĻļāĻž āĻāϰāĻž RLS āύā§āϤāĻŋāĻŽāĻžāϞāĻž
- āϝāĻĻāĻŋ āϞāĻāĻŋāĻ āϏāϤā§āϝāĻŋāĻ āĻāĻāύāĻŋāĻ āĻ āĻā§āĻ āĻšāϝāĻŧ, āϤāĻāύ āϏā§āĻā§āϰā§āύ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻŧā§āϰāĻŋ
āĻāĻĻāĻžāĻšāϰāĻŖ: āϏāĻžāĻĒā§āϰā§āĻ āĻāĻžāĻāĻā§ âāĻāĻ āĻāĻā§āύā§āĻ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāĻŋāĻāĻŋāĻâ, āĻāϰ āĻĢāĻžāĻāύā§āϝāĻžāύā§āϏ āĻāĻžāĻāĻā§ âāĻāύā§āĻā§āϰāĻžāĻā§āĻ āĻŽāĻžāϏ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāĻŋāĻāĻŋāĻâāĨ¤ āĻĻā§āĻā§āĻā§ āĻāĻ āĻāĻŋāĻāϤ⧠āĻā§āϰ āĻāϰāĻžāϞ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ āĻŦāĻŋāĻā§āϰāĻžāύā§āϤ āĻāϞāĻžāĻŽ āĻ āϧā§āϰ āϏā§āĻā§āϝāĻžāύ āĻšāϝāĻŧāĨ¤ āĻĻā§āĻāĻāĻŋ āĻā§āĻ, āĻĢā§āĻāĻžāϏāĻĄ āĻāĻŋāĻ (āĻ āĻĨāĻŦāĻž āĻāĻāĻāĻŋ āϏāĻžāĻŽāĻžāϰāĻŋ āĻā§āĻŦāĻŋāϞ āĻĒā§āϞāĻžāϏ āϏā§āĻā§āϰāĻŋāύ āĻā§āϝāĻŧā§āϰāĻŋ) āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĨāĻžāĻā§āĨ¤
āϧāĻžāĻĒā§ āϧāĻžāĻĒā§: āĻāĻāĻāĻŋ āĻŽā§āĻāύāĻā§āĻāύā§āĻŦāϞ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻŋāĻ āĻŦāĻžāύāĻžāύā§
āĻĄāĻžāĻāĻžāĻŦā§āϏ āύāϝāĻŧ, āϏā§āĻā§āϰā§āύ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰā§āύāĨ¤ āϰāĻŋāĻĒā§āϰā§āĻā§ āĻ āĻŋāĻ āĻā§āύ āĻāϞāĻžāĻŽāĻā§āϞ⧠āĻĻāϰāĻāĻžāϰ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻā§āύ āĻĢāĻŋāϞā§āĻāĻžāϰāĻā§āϞ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āϞāĻžāĻāĻžāĻŦā§ (āϤāĻžāϰāĻŋāĻ āϰā§āĻā§āĻ, āϏā§āĻā§āϝāĻžāĻāĻžāϏ, āĻŽāĻžāϞāĻŋāĻ), āĻāĻŦāĻ āĻĄāĻŋāĻĢāϞā§āĻ āϏāĻžāĻāĻžāύā§āϰ āύāĻŋāϝāĻŧāĻŽ āĻā§âāĻāĻā§āϞ⧠āϞāĻŋāĻā§ āϰāĻžāĻā§āύāĨ¤ āĻāĻāĻž āĻāĻĒāύāĻžāĻā§ âāĻāĻŋāĻā§āύ āϏāĻŋāĻā§āĻâ āĻāĻŋāĻ āĻŦāĻžāύāĻžāύ⧠āĻĨā§āĻā§ āϰāĻā§āώāĻž āĻāϰāĻŦā§āĨ¤
āϤāĻžāϰāĻĒāϰ āĻŦā§āϏ āĻā§āϝāĻŧā§āϰāĻŋāĻāĻŋ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ SELECT āĻšāĻŋāϏā§āĻŦā§ āϞāĻŋāĻā§āύāĨ¤ āĻŦāĻžāϏā§āϤāĻŦ āύāĻŽā§āύāĻž āĻĄā§āĻāĻž āύāĻŋāϝāĻŧā§ āϏā§āĻāĻŋ āϏāĻ āĻŋāĻ āĻāϰ⧠āύāĻŋāύ, āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰāĻ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāύ āĻā§āύāĻā§āϞ⧠āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž āĻāĻŋāĻ āϤ⧠āϝāĻžāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻāĻĒā§āϰā§āĻ:
- āĻāĻāĻāĻĒā§āĻ āĻāϞāĻžāĻŽāĻā§āϞ⧠āĻ āĻĒā§āϰāϤāĻŋāĻāĻŋāϰ āĻŽāĻžāύ⧠āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰā§āύāĨ¤
- āĻ āĻāϞāĻžāĻŽāĻā§āϞ⧠āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻž āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻ āĻā§āϝāĻŧā§āϰāĻŋ āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤
- āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ, āĻĒā§āύāĻāĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝ āĻāϝāĻŧā§āύ āĻ āĻĄā§āϰāĻžāĻāĻāĻĄ āĻĢāĻŋāϞā§āĻĄāĻā§āϞ⧠āĻāĻŋāĻāϤ⧠āύāĻŋāϝāĻŧā§ āĻāϏā§āύāĨ¤
- āĻāĻŋāĻāĻā§ āϏāĻāĻā§āϰā§āĻŖ āϰāĻžāĻā§āύ (āĻāĻ āĻāĻĻā§āĻĻā§āĻļā§āϝ, āĻāĻ āĻļā§āϰā§āϤāĻž) āĻāĻŦāĻ āϏā§āĻĒāώā§āĻ āύāĻžāĻŽ āĻĻāĻŋāύāĨ¤
- UI āϝāĻĻāĻŋ āĻŦāύā§āϧā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϞā§āĻŦā§āϞ āĻāĻžāϝāĻŧ, āĻā§āϰ āĻāĻŋāĻāϤ⧠āĻĄāĻŋāĻĢāϞā§āĻ āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻŽāĻŋāĻļāĻžāĻŦā§āύ āύāĻžâāĻāĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž âāĻĒā§āϰā§āĻā§āύā§āĻā§āĻļāύâ āĻāĻŋāĻ āϰāĻžāĻā§āύāĨ¤
āύāĻžāĻŽāĻāϰāĻŖ āĻ āϏā§āĻĒāώā§āĻāϤāĻž āĻŽā§āϧāĻžāĻŦā§ SQL-āĻāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖāĨ¤ āϏā§āĻĒāώā§āĻ āĻāϞāĻžāĻŽ āϤāĻžāϞāĻŋāĻāĻž āĻĒāĻāύā§āĻĻ āĻāϰā§āύ, SELECT * āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻāϞā§āύ, āĻāĻŦāĻ āĻāĻŽāύ āύāĻžāĻŽ āĻĻāĻŋāύ āϝ⧠āĻĄā§āĻāĻž āĻŦā§āĻāĻžāϝāĻŧ (āĻāĻĻāĻžāĻšāϰāĻŖ: total_paid_cents āĻŦāĻĻāϞ⧠amount āύāϝāĻŧ)āĨ¤
āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āϤāĻāύāĻ āĻāϏ⧠āĻāĻŋāĻ-āϰ āύāĻŋāĻā§āϰ āĻā§āĻŦāĻŋāϞāĻā§āϞā§āϰ āĻāĻžāĻ āĻĨā§āĻā§āĨ¤ āĻāĻāĻŦāĻžāϰ āĻāĻĒāύāĻŋ āĻĒā§āϰāϧāĻžāύ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻ āϏāĻžāĻāĻžāύā§āϰ āύāĻŋāϝāĻŧāĻŽ āĻāĻžāύā§āύ, āϤāĻžāĻĻā§āϰ āĻŽāĻŋāϞāĻŋāϝāĻŧā§āĻ āĻāύā§āĻĄā§āĻā§āϏ āϝā§āĻ āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: created_at, status, customer_id, āĻ
āĻĨāĻŦāĻž āĻāĻāĻāĻŋ āĻāĻĒāϝā§āĻā§ āĻāĻŽā§āĻĒā§āĻāĻŋāĻ āĻāύā§āĻĄā§āĻā§āϏ)āĨ¤
āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖ āĻāϰāĻŦā§āύ āϰāĻŋāĻĒā§āϰā§āĻ āĻā§āĻā§āĻā§ āύāĻž āϝāĻžāϝāĻŧ
āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰā§āύ āĻŦāĻŋāϰāϞ āĻāĻžāϰāĻŖā§ āύāϝāĻŧâāĻāĻāĻāĻŋ āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ, āĻāĻžāĻāĻĒ āĻŦāĻĻāϞāĻžāύā§, āĻŦāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāĻāϰāĻŖ āĻŦāĻĻāϞ⧠āϝāĻžāĻāϝāĻŧāĻžâāĻāĻā§āϞā§āϰ āĻāύā§āϝ āĻŦā§āϰā§āĻ āĻšāϝāĻŧāĨ¤ āĻāĻŋāĻversioning āĻĒā§āϰāĻžāϝāĻŧāĻ API-āϰ āĻŽāϤ⧠āĻāĻāĻāĻŋ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻā§āĻā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻāϰāĻŖ āĻāϰāĻžāϰ āĻŦā§āϝāĻžāĻĒāĻžāϰāĨ¤
āĻāĻāĻāĻŋ āύāĻžāĻŽāĻāϰāĻŖ āϏā§āĻāĻŋāĻŽ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰā§āύ āϝāĻžāϤ⧠āϏāĻŦāĻžāĻ āĻāĻžāύ⧠āĻāĻŋāϏ⧠āύāĻŋāϰā§āĻāϰ āĻāϰāĻž āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤ āĻ
āύā§āĻ āĻĻāϞ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ-āĻĢā§āϏāĻŋāĻ āĻ
āĻŦāĻā§āĻā§āĻā§āϰ āĻāύā§āϝ rpt_ āĻŦāĻž vw_ āĻĒā§āϰāĻŋāĻĢāĻŋāĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āϝāĻĻāĻŋ āĻāĻāĻžāϧāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖ āϞāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āĻļā§āϰ⧠āĻĨā§āĻā§āĻ āύāĻžāĻŽā§āĻ āϏā§āĻāĻž āϰāĻžāĻā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: vw_sales_v1)āĨ¤
āϝāĻāύ āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻŦāĻĻāϞāĻžāϤ⧠āĻšāĻŦā§ āϝāĻž āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻāĻžāϞāĻžāϝāĻŧ, āϝā§āĻāĻĢāϞāĻžāϤā§āĻŽāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§ āĻ āĻā§āϰāĻžāϧāĻŋāĻāĻžāϰ āĻĻāĻŋāύāĨ¤ āĻāĻāĻāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āύāĻŋāϝāĻŧāĻŽ: āϝā§āĻ āĻāϰā§āύ, āύāĻžāĻŽ āĻŦāĻĻāϞāĻžāĻŦā§āύ āύāĻžāĨ¤
- āύāϤā§āύ āĻāϞāĻžāĻŽ āϝā§āĻ āĻāϰā§āύ āĻŦāĻĻāϞ⧠āĻĒā§āϰā§āύā§āĻā§āϞā§āϰ āύāĻžāĻŽ āĻŦāĻž āĻāĻžāĻāĻĒ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻŦā§āύ āύāĻž
- āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻāϞāĻžāĻŽāĻā§āϞā§āϰ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻāϞā§āύ (āύāϤā§āύ āĻāϞāĻžāĻŽā§ āĻāĻžāϏā§āĻ āĻāϰā§āύ)
- āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻāϞāĻžāĻŽā§āϰ āĻŽāĻžāύ⧠āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϰāĻžāĻā§āύ (āĻāĻāĻāĻŋ āĻāϞāĻžāĻŽ āύāϤā§āύ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ āύāĻž)
- āϝāĻĻāĻŋ āĻāĻŽāύ āϞāĻāĻŋāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰ⧠āϝāĻž āĻāύāĻā§āϰā§āϝāĻžāĻā§āĻāĻāĻŋ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰā§, āύāϤā§āύ āĻāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖ āϤā§āϰāĻŋ āĻāϰā§āύ
āϝāĻāύ āĻĒā§āϰāύ⧠āĻā§āĻā§āϤāĻŋ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻāĻž āϝāĻžāϝāĻŧ āύāĻž, āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖ (vw_sales_v2) āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤ āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϰāĻŋāĻāĻžāϰāĻā§āϞā§: āĻāĻāĻāĻžāϰ-āĻĻā§āĻāĻž āĻĢāĻŋāϞā§āĻĄā§āϰ āύāĻžāĻŽā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ, āĻā§āϰā§āĻāύ āĻŦāĻĻāϞāĻžāύ⧠(āĻāĻ row per order āĻĨā§āĻā§ āĻāĻ row per customer āĻšāϞā§), āĻŦāĻž āĻāĻžāĻāĻŽāĻā§āύ/āĻŽā§āĻĻā§āϰāĻž āύāĻŋāϝāĻŧāĻŽ āĻŦāĻĻāϞāĻžāύā§āĨ¤ āĻā§āĻ āĻĢāĻŋāĻā§āϏāĻā§āϞ⧠āϝāĻž āĻāύā§āĻā§āϰā§āϝāĻžāĻā§āĻ āĻā§āĻā§āĻ āĻāϰ⧠āύāĻž āϏā§āĻā§āϞ⧠āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĻāĻŋāϝāĻŧā§ āĻā§āϰā§āϝāĻžāĻ āĻāϰā§āύ, āĻāĻŽāύāĻāĻŋ āĻā§āĻ āĻšāϞ⧠āĻāĨ¤ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻāĻĒāύāĻžāĻā§ āϰāĻŋāĻāĻŋāĻāϝā§āĻā§āϝ āĻĄāĻŋāĻĢ, āϰā§āϞāĻāĻāĻ āĻ āϰā§āĻĄāĻžāϰ, āĻāĻŦāĻ āϏāĻšāĻ āϰā§āϞāĻŦā§āϝāĻžāĻ āĻĻā§āϝāĻŧāĨ¤
āĻĒā§āϰāύ⧠āĻāĻŋāĻ āύāĻŋāϰāĻžāĻĒāĻĻā§ āĻĄāĻŋāĻĒā§āϰāĻŋāĻā§āĻ āĻāϰāϤā§: āĻāĻāĻā§āĻ āĻā§āĻ āĻāϰā§āύ, v2 āĻāĻžāϞāĻžāύ, āĻāύāĻā§āϝā§āĻŽāĻžāϰāĻā§āϞ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύ, āϤā§āϰā§āĻāĻŋ āĻŽāύāĻŋāĻāϰ āĻāϰā§āύ, āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āĻĒāϰā§āϝāĻžāϝāĻŧ āĻĒāϰā§āϝāύā§āϤ v1 āϰāĻžāĻāĻž, āĻāĻŦāĻ āύāĻŋāĻļā§āĻāĻŋāϤ āĻšāϝāĻŧā§ v1 āĻĄā§āϰāĻĒ āĻāϰā§āύ āϝāĻāύ āĻāϰ āĻā§āĻ āĻĒāĻĄāĻŧā§ āύāĻžāĨ¤
āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϰāĻžāĻāĻžāϰ āĻāύā§āϝ: āĻāύā§āĻā§āϰā§āϝāĻžāĻā§āĻ, āĻāĻ āĻā§āϏ, āĻ āĻĒāĻžāϰāĻŽāĻŋāĻļāύ
āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻŋāĻāĻā§ āĻāĻāĻāĻŋ āĻāύā§āĻā§āϰā§āϝāĻžāĻā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻŽāύ⧠āĻāϰā§āύāĨ¤ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻ āĻāĻā§āϏāĻĒā§āϰā§āĻāĻā§āϞ⧠āύāĻŋāĻāĻļāĻŦā§āĻĻā§ āĻāϞāĻžāĻŽ āύāĻžāĻŽ, āĻāĻžāĻāĻĒ, āĻ āĻŽāĻžāύā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻā§āύ⧠āĻāĻŖāύāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻšāϝāĻŧ, āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻāϞāĻžāĻŽā§āϰ āĻŽāĻžāύ āĻŦāĻĻāϞāĻžāύā§āϰ āĻŦāĻĻāϞ⧠āύāϤā§āύ āĻāϞāĻžāĻŽ (āĻ āĻĨāĻŦāĻž āύāϤā§āύ āĻāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖ) āϝā§āĻ āĻāϰā§āύāĨ¤
Nulls āĻā§āĻāĻžāϞ āĻāĻžāĻāĻžāϰ āύā§āϰāĻŦ āĻā§āϏāĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ SUM āĻā§āύāĻ āϰ⧠NULL āĻšāϞ⧠120 āĻĨā§āĻā§ NULL āĻšāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§, āĻāĻŦāĻ āĻ
ā§āϝāĻžāĻāĻžāϰā§āĻ āĻŦāĻĻāϞ⧠āϝā§āϤ⧠āĻĒāĻžāϰ⧠āϝāĻĻāĻŋ āĻ
āύā§āĻĒāϏā§āĻĨāĻŋāϤ āĻŽāĻžāύ āĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻŋāϰ⧠āĻšāĻŋāϏā§āĻŦā§ āĻāĻŖā§āϝ āĻšāϝāĻŧ āĻ āĻ
āύā§āϝ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻĒā§āĻā§āώāĻž āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻŋāĻāϤ⧠āύā§āϤāĻŋāĻāĻŋ āĻāĻāĻŦāĻžāϰāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ discount_amount āĻāĻā§āĻāĻŋāĻ āĻšāϝāĻŧ, āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ COALESCE(discount_amount, 0) āϝāĻžāϤ⧠āĻā§āĻāĻžāϞ āĻāĻāĻĒāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āύāĻž āĻšāϝāĻŧāĨ¤
āϤāĻžāϰāĻŋāĻā§āĻ āĻāĻāĻ āĻļā§āĻā§āĻāϞāĻž āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤ âāĻāĻâ āĻā§ āϤāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āύ (āĻāĻāĻāĻžāϰ āĻāĻžāĻāĻŽāĻā§āύ, āĻā§āĻŽā§āĻĒāĻžāύāĻŋāϰ āĻāĻžāĻāĻŽāĻā§āύ, āĻŦāĻž UTC) āĻāĻŦāĻ āϏā§āĻāĻžāĻ āĻŽā§āύ⧠āĻāϞā§āύāĨ¤ āĻāύāĻā§āϞā§āϏāĻŋāĻ āϰā§āĻā§āĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āϏā§āĻĒāώā§āĻ āĻĨāĻžāĻā§āύāĨ¤ āĻāĻžāĻāĻŽāϏā§āĻā§āϝāĻžāĻŽā§āĻĒāĻā§āϞā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ, āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻĒāĻāύā§āĻĻ āĻšāϞ⧠āĻšāĻžāĻĢ-āĻāĻĒā§āύ āĻāύā§āĻāĻžāϰāĻāĻžāϞ: created_at >= start AND created_at < end_next_dayāĨ¤
āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāĻžāϰāĻŖ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻāĻāĻžāϰāϰāĻž āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āϰ⧠āĻā§āĻŦāĻŋāϞ āĻĻā§āĻāĻž āĻāĻāĻŋāϤ āύāϝāĻŧāĨ¤ āĻāĻŋāĻ-āĻ āĻāĻā§āϏā§āϏ āĻĻāĻŋāύ, āĻŦā§āϏ āĻā§āĻŦāĻŋāϞ āύāϝāĻŧ, āĻāĻŦāĻ āϏāĻāĻŦā§āĻĻāύāĻļā§āϞ āĻāϞāĻžāĻŽāĻā§āϞ⧠āĻāĻŋāĻ āĻĨā§āĻā§ āϰāĻžāĻā§āύāĨ¤ āĻāϤ⧠āĻā§āĻ āύāĻŋāĻā§ āĻā§āϝāĻŧā§āϰāĻŋ āϞāĻŋāĻā§ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§āϰ āĻā§āϝāĻŧā§ āĻāĻŋāύā§āύ āϏāĻāĻā§āϝāĻž āĻĒāĻžāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻāĻŽā§āĨ¤
āĻāĻāĻāĻŋ āĻā§āĻ āĻā§āϏā§āĻāĻŋāĻ āĻ
āĻā§āϝāĻžāϏ āĻŦāĻĄāĻŧ āĻĒā§āϰāĻāĻžāĻŦ āĻĢā§āϞā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻĒāϰ⧠āĻāϝāĻŧā§āĻāĻāĻŋ āϏā§āĻĨāĻŋāϰ āĻā§āϏ āĻāĻŦāĻžāϰ āĻāĻžāϞāĻžāύ: āĻā§āύ⧠āĻĻāĻŋāύ⧠āĻļā§āύā§āϝ āϏāĻžāϰāĻŋ (āĻā§āĻāĻžāϞ 0 āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ, NULL āύāϝāĻŧ), āĻŦāĻžāĻāύā§āĻĄāĻžāϰāĻŋ āĻāĻžāĻāĻŽāϏā§āĻā§āϝāĻžāĻŽā§āĻĒ (āύāĻŋāϰā§āĻŦāĻžāĻāĻŋāϤ āĻāĻžāĻāĻŽāĻā§āύ⧠āĻ āĻŋāĻ āĻŽāĻŋāĻĻāύāĻžāĻāĻā§), āϰāĻŋāĻĢāĻžāύā§āĻĄ āĻŦāĻž āύā§āĻā§āĻāĻŋāĻ āĻāĻĄāĻāĻžāϏā§āĻāĻŽā§āύā§āĻ, āĻāĻŦāĻ view-only āĻāĻāĻžāϧāĻŋāĻ āϰā§āϞāĨ¤
āϰāĻŋāĻĒā§āϰā§āĻ āĻĻā§āϰā§āϤ āϰāĻžāĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻ āĻā§āϝāĻžāϏ
āĻāĻŋāĻ āĻā§āύ⧠āϧā§āϰ āĻā§āϝāĻŧā§āϰāĻŋāĻā§ āĻĻā§āϰā§āϤ āĻāϰ⧠āύāĻžâāĻĒā§āϰāϧāĻžāύāϤ āĻāĻāĻŋ āĻāĻāĻŋāϞāϤāĻž āϞā§āĻāĻžāϝāĻŧāĨ¤ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰā§āύāĻā§āϞ⧠āĻĻā§āϰā§āϤ āϰāĻžāĻāϤā§, āĻāĻĒāύāĻžāϰ āĻāĻŋāĻāĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻšāĻŋāϏā§āĻŦā§ āϤā§āϞā§āύ āϝāĻž āĻĄā§āĻāĻž āĻŦāĻžāĻĄāĻŧāĻžāϰ āϏāĻā§āĻā§ āϏāĻžāĻĨā§ āĻāĻžāϰā§āϝāĻāϰ āĻĨāĻžāĻāĻŦā§āĨ¤
PostgreSQL-āĻā§ āĻāύā§āĻĄā§āĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϏāĻšāĻ āĻāϰ⧠āĻĻāĻŋāύāĨ¤ āĻĢāĻŋāϞā§āĻāĻžāϰāĻā§āϞ⧠āϝāϤ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋ āϏāĻŽā§āĻāĻŦ āϰāĻŋāϝāĻŧā§āϞ āĻāϞāĻžāĻŽā§ āϞāĻžāĻāĻžāύ⧠āĻāĻāĻŋāϤ, āϝāĻžāϤ⧠āĻĒā§āϞā§āϝāĻžāύāĻžāϰ āĻāϝāĻŧā§āύ āĻŦāĻžāĻĄāĻŧāĻžāϰ āĻāĻā§ āϰ⧠āĻāĻŽāĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϏāĻžāϧāĻžāϰāĻŖ āĻ āĻā§āϝāĻžāϏ āϝāĻž āϏāĻžāϧāĻžāϰāĻŖ āϧā§āϰāϤāĻžāϰ āĻĨā§āĻā§ āϰāĻā§āώāĻž āĻāϰā§:
- āĻĄā§āϰāĻžāĻāĻāĻĄ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύāĻā§āϞā§āϰ āĻŦāĻĻāϞ⧠āĻŦā§āϏ āĻāϞāĻžāĻŽāĻā§āϞā§āϰ āĻāĻĒāϰ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§āύ (
created_at,status,account_id)āĨ¤ WHERE-āĻ indexed āĻāϞāĻžāĻŽāĻā§āϞā§āϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āĻĢāĻžāĻāĻļāύ āϞāĻžāĻāĻžāύ⧠āĻāĻĄāĻŧāĻžāύâāĻāĻĻāĻžāĻšāϰāĻŖ:DATE(created_at) = ...āĻĒā§āϰāĻžāϝāĻŧāĻ āĻāύā§āĻĄā§āĻā§āϏ āĻŦā§āϞāĻ āĻāϰā§; āĻāĻāĻāĻŋ āϤāĻžāϰāĻŋāĻ āϰā§āĻā§āĻ āĻĒā§āϰāĻžāϝāĻŧāĻ āĻŦā§āϞāĻ āĻāϰ⧠āύāĻžāĨ¤- JOIN āĻŦāĻŋāϏā§āĻĢā§āϰāĻŖā§āϰ āĻĻāĻŋāĻā§ āύāĻāϰ āϰāĻžāĻā§āύāĨ¤ āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ join condition āĻāĻāĻāĻŋ āĻā§āĻ āϰāĻŋāĻĒā§āϰā§āĻāĻā§ āĻŽāĻŋāϞāĻŋāϝāĻŧāύā§āϰ āϏāĻžāϰāĻŋāϤ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
- āϏāĻŽāϏā§āϝāĻž āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰāϤā§
EXPLAIN(āĻāĻŦāĻ āύāĻŋāϰāĻžāĻĒāĻĻ āĻĒāϰāĻŋāĻŦā§āĻļā§EXPLAIN ANALYZE) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύâāϏāĻŋāĻā§āϝāĻŧā§āύā§āϏāĻŋāϝāĻŧāĻžāϞ āϏā§āĻā§āϝāĻžāύ, āĻāĻžāϰāĻžāĻĒ āϰ⧠āĻ āύā§āĻŽāĻžāύ, āĻāĻŦāĻ āĻāϝāĻŧā§āύāĻā§āϞāĻŋ āĻāĻžāĻāĻŽāĻŋāĻ āĻā§āĻŽāύ āϤāĻž āĻĻā§āĻāϤā§āĨ¤ - āϏā§āĻā§āϰā§āύāĻā§ āĻŦā§āĻĻā§āϧāĻŋāĻŽāĻžāύ āĻĄāĻŋāĻĢāϞā§āĻ āĻĻāĻŋāύ (āϤāĻžāϰāĻŋāĻ āϰā§āĻā§āĻ, āϏā§āĻŽāĻž), āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻāĻā§āĻāĻžāĻā§āϤāĻāĻžāĻŦā§ āϤāĻž āĻŦāĻĄāĻŧ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĒāĻžāύāĨ¤
āĻāĻāĻ āĻāĻžāϰāĻŋ āϰāĻŋāĻĒā§āϰā§āĻ āĻĻāĻŋāύāĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāϞ⧠materialized view āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύāĨ¤ āĻāĻāĻŋ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄāĻā§ āĻāύā§āϏāĻā§āϝāĻžāύā§āĻ āĻŽāύ⧠āĻāϰāĻžāϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠āϰāĻŋāĻĢā§āϰā§āĻļ āĻāϰāĻ āĻ āϏā§āĻā§āϝāĻžāϞāύā§āϏ āĻāĻā§āĨ¤ āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧā§āϰ āĻāĻžāĻšāĻŋāĻĻāĻžāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞ āϰā§āĻā§ āϰāĻŋāĻĢā§āϰā§āĻļ āĻļāĻŋāĻĄāĻŋāĻāϞ āύāĻŋāϝāĻŧā§āύ, āĻāĻŦāĻ āϏā§āĻĒāώā§āĻ āĻāϰ⧠āĻŦāϞā§āύ āĻāĻ āϏā§āĻā§āϰā§āύ āĻāϤāĻāĻž âāϤāĻžāĻāĻžâāĨ¤
āϧā§āϰ āĻŦāĻž āĻā§āϞ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻāϰāĻžāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻā§āϞ
āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§ āĻā§āϰāĻžāϏā§āĻ āĻāĻžāĻāĻžāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻĻā§āϰā§āϤ āĻāĻĒāĻžāϝāĻŧ āĻšāϞ⧠āĻāĻāĻžāĻā§ āϧā§āϰ āĻŦāĻž āύā§āϰāĻŦā§ āĻā§āϞ āĻāϰ⧠āĻĢā§āϞāĻžāĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϏā§āϝāĻž âPostgreSQL āϧā§āϰâ āϏāĻŽāϏā§āϝāĻžāϰ āĻāĻžāϰāĻŖā§ āύāϝāĻŧâāĻāĻā§āϞ⧠āĻĄāĻŋāĻāĻžāĻāύ āϏāĻŽāϏā§āϝāĻž āϝāĻž āĻŦāĻžāϏā§āϤāĻŦ āĻĄā§āĻāĻž āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāĻāĻŽāύā§āϰ āĻĒāϰ⧠āĻĻā§āĻāĻž āϝāĻžāϝāĻŧāĨ¤
āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĢāĻžāĻāĻĻ āĻšāϞ⧠āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāϞ âāϏāĻŦāĻāĻŋāĻā§ āĻāϰā§â āĻāĻŋāĻ āϤā§āϰāĻŋ āĻāϰāĻžāĨ¤ āĻāĻāĻŋ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻŽāύ⧠āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāϏā§āϤā§āϤ āĻāϝāĻŧā§āύ āϏā§āϝā§āĻĒā§ āĻĒāϰāĻŋāĻŖāϤ āĻšāϝāĻŧ āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻā§āϰā§āύ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤ āϝāĻāύ āĻāĻāĻāĻŋ āĻāĻŋāĻŽ āύāϤā§āύ āĻŽā§āĻā§āϰāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāϝāĻŧā§āύ āϝā§āĻ āĻāϰā§, āϤāĻāύ āϏāĻŦāĻžāĻ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻāĻžāĻ āĻ āύāϤā§āύ āĻā§āĻāĻāĻŋ āĻĒāĻžāϝāĻŧāĨ¤
āĻāϰāĻ āĻāĻāĻāĻŋ āĻā§āϞ āĻšāϞ⧠UI āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāĻŋāĻāϤ⧠āϰā§āĻā§ āĻĻā§āĻāϝāĻŧāĻžâāĻāύāĻā§āϝāĻžāĻā§āύā§āĻ āĻāϰāĻž āϞā§āĻŦā§āϞ, āĻŽā§āĻĻā§āϰāĻž āϏā§āĻā§āϰāĻŋāĻ, āĻŦāĻž âāϏā§āύā§āĻĻāϰâ āϤāĻžāϰāĻŋāĻāĨ¤ āĻāϤ⧠āϏāĻžāĻāĻžāύ⧠āĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāĻž āĻāĻ āĻŋāύ āĻšāϝāĻŧ āĻāĻŦāĻ āϞā§āĻā§āϞ-āĻŦāĻžāύā§āϧāĻŦ āĻŦāĻžāĻ āϤā§āϰāĻŋ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŋāĻāĻā§āϞā§āĻā§āĻ āϏā§āϏā§āĻĒāώā§āĻ āĻāĻžāĻāĻĒ (āύāĻŽā§āĻŦāĻžāϰ, āĻāĻžāĻāĻŽāϏā§āĻā§āϝāĻžāĻŽā§āĻĒ, āĻāĻāĻĄāĻŋ) āϰāĻžāĻā§āύ, āĻĄāĻŋāϏāĻĒā§āϞ⧠UI-āĻā§ āĻĻāĻŋāύāĨ¤
SELECT * āĻāĻŋāĻāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āĻĻā§āĻāĻŦā§āύ āĻāĻāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻžāϞ⧠āϞāĻžāĻāϞā§āĻ, āĻā§āĻ āĻŦā§āϏ āĻā§āĻŦāĻŋāϞ⧠āύāϤā§āύ āĻāϞāĻžāĻŽ āϝā§āĻ āĻāϰāϞ⧠āϰāĻŋāĻĒā§āϰā§āĻ āĻāĻāϏā§āĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϏā§āĻĒāώā§āĻ āĻāϞāĻžāĻŽ āϤāĻžāϞāĻŋāĻāĻž āĻāĻŋāĻ āĻāĻāĻāĻĒā§āĻāĻā§ āϏā§āĻĨāĻŋāϰ āĻāύā§āĻā§āϰā§āϝāĻžāĻā§āĻ āĻāϰ⧠āϰāĻžāĻā§āĨ¤
āĻā§āϞ āĻā§āĻāĻžāϞ āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻāϝāĻŧā§āύā§āϰ āĻĢāϞ⧠āϏāĻžāϰāĻŋāĻā§āϞ⧠āĻā§āĻŖāĻŋāϤ āĻšāĻāϝāĻŧāĻžāϰ āĻāĻžāϰāĻŖā§ āĻšāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ one-to-many JOIN â10 customersâ āĻā§ â50 rowsâ āĻāϰ⧠āĻĢā§āϞāϤ⧠āĻĒāĻžāϰ⧠āϝāĻĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻžāϏā§āĻāĻŽāĻžāϰā§āϰ āĻĒāĻžāĻāĻāĻāĻŋ āĻ āϰā§āĻĄāĻžāϰ āĻĨāĻžāĻā§āĨ¤
āĻāĻāĻŋ āĻĻā§āϰā§āϤ āϧāϰāĻžāϰ āĻāĻĒāĻžāϝāĻŧ: āĻāϝāĻŧā§āύā§āϰ āĻāĻā§ āĻ āĻĒāϰ⧠āĻāĻžāĻāύā§āĻ āϤā§āϞāύāĻž āĻāϰā§āύ, âmanyâ āĻĒāĻžāĻļāĻāĻŋāĻā§ āĻāĻā§ āĻāĻā§āϰāĻŋāĻā§āĻ āĻāϰ⧠āϝā§āĻ āĻāϰā§āύ, āĻāĻŦāĻ LEFT JOIN-āϰ āĻĒāϰ⧠āĻ
āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ NULL-āĻāϰ āĻĻāĻŋāĻā§ āύāĻāϰ āϰāĻžāĻā§āύāĨ¤
Materialized view āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āϰāĻŋāĻĢā§āϰā§āĻļ āϏāĻŽāϝāĻŧāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖāĨ¤ āĻļāĻŋāĻāϰā§āϰ āϏāĻŽāϝāĻŧ āϰāĻŋāĻĢā§āϰā§āĻļ āĻāϰāϞ⧠āĻĒāĻĄāĻŧāĻž āϞāĻ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰ⧠āĻ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰā§āύ āĻšā§āϝāĻžāĻ āĻāϰ⧠āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻļāĻžāύā§āϤ āϏāĻŽāϝāĻŧā§ āĻļāĻŋāĻĄāĻŋāĻāϞāĻā§āϤ āϰāĻŋāĻĢā§āϰā§āĻļ āĻŦāĻž concurrent refresh āĻŦā§āĻā§ āύāĻŋāύ āϝā§āĻāĻžāύ⧠āĻāĻĒāϝā§āĻā§āϤāĨ¤
āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻāĻŋāĻ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āĻāĻā§ āĻĻā§āϰā§āϤ āĻā§āĻāϞāĻŋāϏā§āĻ
āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻŋāĻ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āĻ āϏāĻžāĻĒā§āϤāĻžāĻšāĻŋāĻ āĻāĻŽā§āĻāϞā§āϰ āĻļāĻā§āϤāĻŋ āĻšāϞā§, āĻāĻāĻžāĻā§ āĻā§āĻ āĻĒāĻžāĻŦāϞāĻŋāĻ API āĻŽāϤ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύāĨ¤
āĻĒā§āϰāĻĨāĻŽā§ āĻā§āϞāĻŋāϝāĻŧāĻžāϰāĻŋāĻāĻŋāĨ¤ āĻāϞāĻžāĻŽ āύāĻžāĻŽāĻā§āϞ⧠āϰāĻŋāĻĒā§āϰā§āĻ āϞā§āĻŦā§āϞā§āϰ āĻŽāϤ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ, āĻļā§āϧ⧠āĻāύā§āĻāĻžāϰāύāĻžāϞ āĻā§āĻŦāĻŋāϞ āύāĻžāĻŽ āύāϝāĻŧāĨ¤ āĻāĻāύāĻŋāĻ āϝā§āĻā§āϤ āĻāϰā§āύ āϝā§āĻāĻžāύ⧠āĻĻāϰāĻāĻžāϰ (amount_cents āĻŦāύāĻžāĻŽ amount)āĨ¤ āϝāĻĻāĻŋ āĻāĻžāĻāĻāĻž āĻ āĻĄā§āϰāĻžāĻāĻāĻĄ āĻĢāĻŋāϞā§āĻĄ āĻĻā§āĻā§āĻ āĻĨāĻžāĻā§, āϤāĻž āϏā§āĻĒāώā§āĻ āĻāϰā§āύ (status āĻŦāύāĻžāĻŽ status_group)āĨ¤
āϤāĻžāϰāĻĒāϰ āϏāĻ āĻŋāĻāϤāĻž āĻ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻāĻāϏāĻžāĻĨā§ āĻā§āĻ āĻāϰā§āύ:
- āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠join keys āĻŦāĻžāϏā§āϤāĻŦ āϏāĻŽā§āĻĒāϰā§āĻ āĻĒā§āϰāϤāĻŋāĻĢāϞāĻŋāϤ āĻāϰ⧠(one-to-one āĻŦāύāĻžāĻŽ one-to-many) āϝāĻžāϤ⧠āĻāĻžāĻāύā§āĻ āĻ āϏāĻžāĻŽ āĻā§āĻĒāύ⧠āĻā§āĻŖāĻŋāϤ āύāĻž āĻšāϝāĻŧāĨ¤
- āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϏāĻžāϧāĻžāϰāĻŖ āĻĢāĻŋāϞā§āĻāĻžāϰāĻā§āϞ⧠āĻŦā§āϏ āĻā§āĻŦāĻŋāϞā§āϰ āĻāύā§āĻĄā§āĻā§āϏāϝā§āĻā§āϤ āĻāϞāĻžāĻŽāĻā§āϞā§āϤ⧠āĻĒāĻĄāĻŧā§ (āϤāĻžāϰāĻŋāĻ, āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻāĻāĻĄāĻŋ, āĻā§āύā§āϝāĻžāύā§āĻ āĻāĻāĻĄāĻŋ)āĨ¤
- āĻā§āĻ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāĻāĻŋāϤ āĻĄā§āĻāĻžāϏā§āĻā§ āĻā§āĻāĻžāϞ āϝāĻžāĻāĻžāĻ āĻāϰā§āύ āϝāĻž āĻāĻĒāύāĻŋ āĻšāĻžāϤ⧠āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
- NULLs āĻ āĻāĻ āĻā§āϏ (āĻ āĻĒā§āϰāĻžāĻĒā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§, āĻĄāĻŋāϞāĻŋāĻā§āĻĄ āϰā§āĻāϰā§āĻĄ, āĻāĻžāĻāĻŽāĻā§āύ) āϰāĻŋāĻāĻŋāĻ āĻāϰ⧠āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāύ āĻāĻŋāĻ āĻā§ āĻāĻāĻāĻĒā§āĻ āĻĻā§āĻŦā§āĨ¤
- āĻā§āĻāĻžāĻŦā§ āĻāĻŋāĻ āϏā§āĻĢāϞāĻŋ āĻŦāĻĻāϞāĻžāĻŦā§āύ āϤāĻž āĻ āĻŋāĻ āĻāϰā§āύ: āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ
ā§āϝāĻžāĻĄāĻŋāĻāĻŋāĻ āĻāϞāĻžāĻŽ, āύāĻž āĻšāϞā§
report_sales_v2āĻŽāϤ⧠āύāĻžāĻŽāĻŋāϤ āϏāĻāϏā§āĻāϰāĻŖāĨ¤
Materialized view āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āϰāĻŋāϞāĻŋāĻā§āϰ āĻāĻā§ āϰāĻŋāĻĢā§āϰā§āĻļ āĻĒā§āϞā§āϝāĻžāύ āϞāĻŋāĻā§ āϰāĻžāĻā§āύāĨ¤ āϏā§āĻā§āϝāĻžāϞāύā§āϏ āĻāϤā§āĻāĻž āĻā§āϰāĻšāĻŖāϝā§āĻā§āϝ (āĻŽāĻŋāύāĻŋāĻ, āĻāĻŖā§āĻāĻž, āĻĻāĻŋāύ) āϤāĻž āĻ āĻŋāĻ āĻāϰ⧠āύāĻŋāύ āĻāĻŦāĻ āϰāĻŋāĻĢā§āϰā§āĻļ āĻļā§āϰā§āώ āϏāĻŽāϝāĻŧā§ āϞāĻ āĻāϰāĻŦā§ āύāĻž āĻāĻŋ āύāĻž āϤāĻž āϝāĻžāĻāĻžāĻ āĻāϰā§āύāĨ¤
āĻļā§āώā§, āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻā§āĻ āĻāϰā§āύāĨ¤ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻāĻāĻžāϰāĻĻā§āϰ āϏāĻžāϧāĻžāϰāĻŖāϤ read-only āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āĻĻāϰāĻāĻžāϰ, āĻāĻŦāĻ āĻāĻŋāĻ āĻā§āĻŦāϞāĻ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻā§āώā§āϤā§āϰāĻā§āϞ⧠āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻŦā§āĨ¤
āĻāĻĻāĻžāĻšāϰāĻŖ: āĻāĻ āĻāĻŋāĻ āĻĻāĻŋāϝāĻŧā§ āĻĻā§āĻāĻāĻŋ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰā§āύ āĻāĻžāϞāĻžāύā§
Sales ops āĻĻā§āĻāĻŋ āϏā§āĻā§āϰā§āύ āĻāĻžāϝāĻŧ: âDaily revenueâ (āĻĻāĻŋāύ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāĻžāϰā§āĻ) āĻāĻŦāĻ âOpen invoicesâ (āĻā§ āĻāϤ āĻāĻžāĻāĻž āĻŦāĻžāĻāĻŋ āĻāĻā§ āĻā§āĻŦāĻŋāϞ)āĨ¤ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāĻā§āώā§āĻāĻž āĻĒā§āϰāĻžāϝāĻŧāĻ āĻĻā§āĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻā§āϝāĻŧā§āϰāĻŋ āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāύāĻāϝāĻŧā§āϏ āϏā§āĻā§āϝāĻžāĻāĻžāϏ, āϰāĻŋāĻĢāĻžāύā§āĻĄ āĻāĻŦāĻ āĻā§āύ āĻā§āϰāĻžāĻšāĻāĻā§ āĻāĻŖā§āϝ āĻāϰāĻŦā§āύâāĻāϏāĻŦ āĻāĻāĻā§ āĻāĻŋāύā§āύāĻāĻžāĻŦā§ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰā§āĨ¤ āĻāĻ āĻŽāĻžāϏ āĻĒāϰ⧠āϏāĻāĻā§āϝāĻžāĻā§āϞ⧠āĻŽā§āϞā§āύāĻžāĨ¤
āϏāĻšāĻ āϏāĻŽāĻžāϧāĻžāύ: āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž āύāĻŋāϝāĻŧāĻŽāĻā§āϞ⧠āĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āϰāĻžāĻā§āύāĨ¤ āĻāĻžāĻāĻāĻž āĻā§āĻŦāĻŋāϞāĻā§āϞ⧠āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: customers, invoices, payments, credit_notes), āϤāĻžāϰāĻĒāϰ āĻāĻāĻāĻŋ āĻļā§āϝāĻŧāĻžāϰā§āĻĄ āĻāĻŋāĻ āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰā§āύ āϝāĻž āϞāĻāĻŋāĻāĻā§āϞ⧠āύāϰāĻŽāĻžāϞāĻžāĻāĻ āĻāϰā§āĨ¤
āϧāϰāĻž āϝāĻžāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻāĻā§ reporting.invoice_facts_v1 āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāύāĻāϝāĻŧā§āϏā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāϰāĻŋ āϰāĻŋāĻāĻžāϰā§āύ āĻāϰ⧠āĻāĻŦāĻ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻĢāĻŋāϞā§āĻĄ āĻĻā§āϝāĻŧ āϝā§āĻŽāύ customer_name, invoice_total, paid_total, balance_due, invoice_state (open, paid, void), āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻāĻ effective_date āϝāĻž āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āϏāĻŽā§āĻŽāϤāĨ¤
āĻāĻāϝāĻŧ āϏā§āĻā§āϰā§āύ āϤāĻžāϰāĻĒāϰ āĻāĻāĻ āĻāύā§āĻā§āϰā§āϝāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§:
- âOpen invoicesâ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§
invoice_state = 'open'āĻāĻŦāĻbalance_dueāĻ āύā§āϝāĻžāϝāĻŧā§ āϏāĻžāĻāĻžāϝāĻŧāĨ¤ - âDaily revenueâ
date_trunc('day', effective_date)āĻ āύā§āϝāĻžāϝāĻŧā§ āĻā§āϰā§āĻĒ āĻāϰ⧠āĻāĻŦāĻ paid amount (āĻ āĻĨāĻŦāĻž recognized revenue, āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āύāĻŋāϝāĻŧāĻŽ āϏā§āĻāĻŋ āĻšāϝāĻŧ) āϏāĻŦāĻžāϰ āϝā§āĻ āĻāϰā§āĨ¤
āϝāĻĻāĻŋ âDaily revenueâ āĻāĻāύāĻ āĻāĻžāϰ⧠āĻšāϝāĻŧ, āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āϏā§āϤāϰ āϝā§āĻ āĻāϰā§āύ: āĻĻāĻŋāύ⧠āĻ āύā§āϝāĻžāϝāĻŧā§ āĻĒā§āϰāĻŋ-āĻāĻā§āϰāĻŋāĻā§āĻ āĻāϰāĻž āĻāĻāĻāĻŋ āϰā§āϞāĻāĻĒ āĻāĻŋāĻ (āĻ āĻĨāĻŦāĻž materialized view) āϝā§āĻāĻž āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϤāĻžāĻāĻžāϰāĻŋāϰ āĻļāĻŋāĻĄāĻŋāĻāϞā§āϰ āĻāĻĒāϰ āϰāĻŋāĻĢā§āϰā§āĻļ āĻāϰāĻž āĻšāĻŦā§āĨ¤
āϝāĻĻāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻŦāĻĻāϞāĻžāϝāĻŧ, reporting.invoice_facts_v2 āϰā§āϞ āĻāĻāĻ āĻāϰā§āύ v1 āĻĒā§āϞā§āϏ⧠āĻāĻĄāĻŋāĻ āĻāϰāĻžāϰ āĻŦāĻĻāϞā§āĨ¤ āύāϤā§āύ āϏā§āĻā§āϰā§āύāĻā§āϞā§āĻā§ v2-āĻ āĻļāĻŋāĻĒ āĻāϰā§āύ, āĻĒā§āϰāύ⧠v1-āĻā§ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āϏāĻŽāϝāĻŧ āϰāĻžāĻāĻž, āϤāĻžāϰāĻĒāϰ āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰ⧠v1 āϰāĻŋāĻŽā§āĻ āĻāϰā§āύāĨ¤
āϏāĻžāĻĢāϞā§āϝ āĻĻā§āĻāϤ⧠āĻā§āĻŽāύ āϞāĻžāĻā§: āĻāĻāϝāĻŧ āϏā§āĻā§āϰā§āύ āĻāĻāĻ āĻāĻžāĻāĻŽ āĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ āĻŽāĻŋāϞ⧠āϝāĻžāϝāĻŧ, āϏāĻžāĻĒā§āϰā§āĻ āĻĒā§āϰāĻļā§āύ āĻāĻŽā§ āϝāĻžāϝāĻŧ, āĻāĻŦāĻ āϞā§āĻĄ āĻāĻžāĻāĻŽ āĻĒā§āϰā§āĻŦāĻžāύā§āĻŽāĻžāύāϝā§āĻā§āϝ āĻĨāĻžāĻā§ āĻāĻžāϰāĻŖ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āĻāϝāĻŧā§āύ āĻ āϏā§āĻā§āϝāĻžāĻāĻžāϏ āύāĻŋāϝāĻŧāĻŽ āĻāĻ āĻā§āϏā§āĻ āĻāϰāĻž āϏāĻāĻā§āĻāĻžāϝāĻŧ āĻĨāĻžāĻā§āĨ¤
āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ: āĻāĻŋāĻāĻā§ āĻāĻāĻāĻŋ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āϝā§āĻā§āϝ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞā§-āϰ āĻ āĻāĻļ āĻŦāĻžāύāĻžāύ
āύāĻŋāϰā§āĻŦāĻžāĻā§āϝ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāϏ⧠āĻŦāĻŋāϰāϞ āĻ āĻā§āϝāĻžāϏ āĻĨā§āĻā§: āϏā§āĻĒāώā§āĻ āϏāĻāĻā§āĻāĻž, āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ, āĻāĻŦāĻ āĻŽā§āϞāĻŋāĻ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻā§āĻāĨ¤ āϞāĻā§āώā§āϝ āύāϤā§āύ SQL āύāϝāĻŧâāĻāĻŽ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻŦāĻŋāĻāύā§āϏ āϞāĻāĻŋāĻ āĻŦāĻŋāĻāϞāĻŋāϤ āĻšāĻāϝāĻŧāĻžāĨ¤
āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāϰā§āύ āĻā§ āĻāĻŋāύāĻŋāϏ āĻāĻŋāĻāϰ āĻĻāĻžāĻŦāĻŋ āϰāĻžāĻā§āĨ¤ āĻāĻžāϞ āĻĒā§āϰāĻžāϰā§āĻĨā§āĻā§āϞ⧠āĻšāϞ⧠āϝā§āĻā§āϞ⧠āĻāĻĒāύāĻŋ āĻāĻļāĻž āĻāϰā§āύ āϏāϰā§āĻŦāϤā§āϰ āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦā§āύ: āĻā§āϰ āĻŽā§āĻā§āϰāĻŋāĻ (revenue, active users, conversion), āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž āĻĄāĻžāĻāĻŽā§āύāĻļāύ (customer, region, product), āĻāĻŦāĻ āϝā§āĻā§āύ⧠āĻāϝāĻŧā§āύ āĻĒāĻžāĻĨ āϝāĻž āĻāĻāĻžāϧāĻŋāĻ āϰāĻŋāĻĒā§āϰā§āĻā§ āĻĻā§āĻāĻž āϝāĻžāϝāĻŧāĨ¤
āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞā§āĻāĻŋ āϏāĻšāĻ āϰāĻžāĻā§āύ:
- āĻāĻŋāĻ āύāĻžāĻŽāĻāϰāĻŖ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ āϰāĻžāĻā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖ: āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ-āĻĢā§āϏāĻŋāĻ āĻāĻŋāĻ āĻāύā§āϝ
rpt_)āĨ¤ - āϏāĻāϏā§āĻāϰāĻŖā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ (create
v2, āĻāύāĻā§āϝā§āĻŽāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ, āϤāĻžāϰāĻĒāϰv1āĻ āĻŦāϏāϰ)āĨ¤ - āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĻāĻŋāϝāĻŧā§ āĻĒāĻžāĻ āĻžāύ, āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞ āĻāĻĄāĻŋāĻ āύāϝāĻŧāĨ¤
- āĻāϞāĻžāĻŽāĻā§āϞā§āϰ āĻāĻāĻāĻŋ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĄāĻā§āĻŽā§āύā§āĻ āϰāĻžāĻā§āύ (āĻŽāĻžāύā§, āĻāĻāύāĻŋāĻ, null āύāĻŋāϝāĻŧāĻŽ)āĨ¤
- āϧā§āϰ āϰāĻŋāĻĒā§āϰā§āĻ āĻā§āϝāĻŧā§āϰāĻŋāĻā§āϞ⧠āĻā§āϰā§āϝāĻžāĻ āĻāϰā§āύ āĻāĻŦāĻ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϰāĻŋāĻāĻŋāĻ āĻāϰā§āύāĨ¤
āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŦāĻāϞāύā§āĻ āϏā§āĻā§āϰā§āύ āĻ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āϤā§āϰāĻŋ āĻāϰāĻžāϝāĻŧ āĻšāϝāĻŧ, AppMaster (appmaster.io) āĻĒā§āϰāĻžāϝāĻŧā§āĻāĻŋāĻ āĻšāϤ⧠āĻĒāĻžāϰā§: āĻāĻĒāύāĻŋ PostgreSQL āĻāĻŋāĻāĻā§āϞā§āĻā§ āϏāϤā§āϝā§āϰ āĻā§āϏ āĻšāĻŋāϏā§āĻŦā§ āϰā§āĻā§, āϤāĻžāϰāĻĒāϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ API āĻ āĻāϝāĻŧā§āĻŦ/āĻŽā§āĻŦāĻžāĻāϞ UI āĻā§āύāĻžāϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύâāĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻā§āϰā§āύ⧠āĻāϝāĻŧā§āύ āĻ āύāĻŋāϝāĻŧāĻŽ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āύāĻž āĻāϰā§āĨ¤
āĻāĻāĻāĻŋ āĻā§āĻ āĻĒāĻžāĻāϞāĻ āĻāĻžāϞāĻžāύāĨ¤ āĻāĻ āϝā§āĻāĻž āĻāώā§āĻāĻĻāĻžāϝāĻŧāĻ āĻāĻāĻāĻŋ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āϏā§āĻā§āϰā§āύ āĻŦā§āĻā§ āύāĻŋāύ, āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰā§āύ āϝāĻž āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§ āĻŽā§āĻā§āϰāĻŋāĻ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§, āĻāĻāĻāĻŋ āϰāĻŋāϞāĻŋāĻ āϏāĻžāĻāĻā§āϞ⧠āĻļāĻŋāĻĒ āĻāϰā§āύ, āĻāĻŦāĻ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻāϰā§āύâāĻāϤāĻāĻž āĻāĻŽ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻ âāϏāĻāĻā§āϝāĻž āĻŽā§āϞ⧠āύāĻžâ āĻŦāĻžāĻ āĻšāϝāĻŧā§āĻā§āĨ¤
āĻĒā§āϰāĻļā§āύā§āϤā§āϤāϰ
āĻāĻāĻžāϧāĻŋāĻ āϏā§āĻā§āϰā§āύ āĻāĻāĻ āϰāĻāĻŽ āĻāϝāĻŧā§āύ āĻ āϏāĻāĻā§āĻāĻž āĻŦāĻžāϰāĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āĻāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύâāϝā§āĻŽāύ âpaidâ āĻŦāĻž âactiveâ āĻā§āĻāĻžāĻŦā§ āĻāĻŖā§āϝ āĻšāĻŦā§āĨ¤ āĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž āϞāĻāĻŋāĻ āĻĨāĻžāĻāϞ⧠āĻā§āĻāĻžāϞāĻā§āϞ⧠āϏāĻā§āĻāϤāĻŋāĻĒā§āϰā§āĻŖ āĻĨāĻžāĻā§, āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻā§āϰā§āύ āϤāĻžāϰ āύāĻŋāĻā§āϰ āĻā§āĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻ āϏāĻžāĻāĻžāύā§āϰ āύāĻŋāϝāĻŧāĻŽ āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϏāĻžāϧāĻžāϰāĻŖ āĻāĻŋāĻ āĻšāϞ⧠āĻā§āĻŦāϞ āύāĻžāĻŽāĻā§āϤ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻŦāĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āύāĻžāĨ¤ āĻāϰ materialized view āĻĄāĻŋāϏā§āĻā§ āϰā§āĻāĻžāϞā§āĻ āϏā§āĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§, āϤāĻžāĻ āĻĒāĻĄāĻŧāĻž āĻĻā§āϰā§āϤ āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻĄā§āĻāĻž āĻļā§āώ āϰāĻŋāĻĢā§āϰā§āĻļ āĻĒāϰā§āϝāύā§āϤ āĻāĻĒ āĻā§ āĻĄā§āĻ āĻĨāĻžāĻāĻŦā§ āύāĻžāĨ¤
āύāĻžâāĻāĻāĻāĻŋ āĻāĻŋāĻ āύāĻŋāĻā§ āĻĨā§āĻā§āĻ āϰāĻŋāĻĒā§āϰā§āĻ āĻĻā§āϰā§āϤ āĻāϰ⧠āύāĻž, āĻāĻžāϰāĻŖ PostgreSQL āĻāĻāύāĻ āĻŦā§āϏ āĻā§āĻŦāĻŋāϞāĻā§āϞā§āϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āĻāύā§āĻĄāĻžāϰāϞāĻžāĻāύāĻŋāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻžāϞāĻžāϝāĻŧāĨ¤ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āϏāĻŽāϏā§āϝāĻž āĻšāϞ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻžāϞ⧠āĻāύā§āĻĄā§āĻā§āϏ, āĻāϰ⧠āϏāĻŋāϞā§āĻāĻāĻŋāĻ āĻĢāĻŋāϞā§āĻāĻžāϰ, āĻŦāĻž āĻĒā§āϰāĻŋ-āĻāĻŽā§āĻĒāĻŋāĻāĻā§āĻĄ āϏāĻžāĻŽāĻžāϰāĻŋāĻ (āϝā§āĻŽāύ materialized view āĻŦāĻž āϰā§āϞāĻāĻĒ āĻā§āĻŦāĻŋāϞ) āĻĻāϰāĻāĻžāϰāĨ¤
āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāϞāĻžāĻŽ āϰāĻŋāĻĒā§āϰā§āĻā§ āĻā§ āĻĻāϰāĻāĻžāϰ āĻāĻŦāĻ āϤāĻžāϰ āĻŽāĻžāύ⧠āĻā§, āϏā§āĻāĻž āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻāϰ⧠āĻļā§āϰ⧠āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ āϝāϤāĻā§āĻā§ āĻĻāϰāĻāĻžāϰ āϏā§āĻ āĻā§āĻ āĻā§āϝāĻŧā§āϰāĻŋ āϞāĻŋāĻā§āύāĨ¤ āĻļā§āϧ⧠āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ, āĻĒā§āύāĻāĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝ āĻāϝāĻŧā§āύ āĻ āĻĄā§āϰāĻžāĻāĻāĻĄ āĻā§āώā§āϤā§āϰāĻā§āϞ⧠āĻāĻŋāĻāϤ⧠āϰāĻžāĻā§āύ āĻāĻŦāĻ āĻĄāĻŋāϏāĻĒā§āϞ⧠āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ āĻāϞāĻžāĻĻāĻž āϰāĻžāĻā§āύ āϝāĻžāϤ⧠UI āϏāĻšāĻā§ āϏāĻžāĻāĻŋāϝāĻŧā§ āĻĢā§āϞāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻŋāĻāĻā§ āĻāĻāĻāĻŋ API āĻāύā§āĻā§āϰā§āϝāĻžāĻā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύāĨ¤ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻāϞāĻžāĻŽ āϝā§āĻ āĻāϰāĻž āύāĻŋāϰāĻžāĻĒāĻĻ; āύāĻžāĻŽ āĻŦāĻĻāϞāĻž āĻŦāĻž āĻāĻžāĻāĻĒ āĻŦāĻĻāϞāĻžāύ⧠āĻĨā§āĻā§ āĻŦāĻŋāϰāϤ āĻĨāĻžāĻā§āύāĨ¤ āϝāĻĻāĻŋ āĻāύā§āĻā§āϰā§āϝāĻžāĻā§āĻ āĻŦāĻĻāϞāĻžāύ⧠āϞāĻžāĻāϰāĻŋ āĻšāϝāĻŧ, āύāϤā§āύ āĻāĻŋāĻļāύ āĻŦā§āϰ āĻāϰā§āύ (āϝā§āĻŽāύ v2) āĻāĻŦāĻ āϧāĻžāĻĒā§ āϧāĻžāĻĒā§ āĻāύāĻā§āϝā§āĻŽāĻžāϰāϰāĻž āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āύāĨ¤
Nulls āύā§āϰāĻŦā§ āĻā§āĻāĻžāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϝāĻĻāĻŋ āĻ
āύā§āĻĒāϏā§āĻĨāĻŋāϤ āĻŽāĻžāύ āĻā§āĻāĻžāϞ⧠āĻāĻŋāϰ⧠āĻšāĻŋāϏā§āĻŦā§ āĻāĻŖā§āϝ āĻāϰāĻž āĻāĻāĻŋāϤ, āϤāĻžāĻšāϞ⧠āĻāĻŋāĻāϤ⧠COALESCE(discount_amount, 0) āĻāϰ āĻŽāϤ⧠āϏā§āĻĒāώā§āĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāĻĒā§āϰā§āĻā§ āĻŽāĻžāύā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāĻāϰāĻāĻŽ āϰāĻžāĻā§āύāĨ¤
āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻāĻŋ one-to-many JOIN āĻāϰ āĻāĻžāϰāĻŖā§ āϏāĻžāϰāĻŋāĻā§āϞ⧠āĻŦā§āĻĻā§āϧāĻŋ āĻĒāĻžāϝāĻŧ āĻāĻŦāĻ āĻā§āĻāĻžāϞ āĻŦāĻžāĻĄāĻŧā§āĨ¤ āϏāĻŽāĻžāϧāĻžāύ: âmanyâ āĻĒāĻžāĻļāĻāĻŋ āĻāĻā§ āĻāĻā§āϰāĻŋāĻā§āĻ āĻāϰ⧠āϝā§āĻ āĻāϰā§āύ, āĻ āĻĨāĻŦāĻž āĻāĻŽāύ āĻā§ āĻĻāĻŋāϝāĻŧā§ JOIN āĻāϰā§āύ āϝāĻž āĻāĻĻā§āĻĻā§āĻļā§āϝāĻāϤ āĻā§āϰā§āĻāύ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§ (āϝā§āĻŽāύ âāĻĒā§āϰāϤāĻŋ āĻāύāĻāϝāĻŧā§āϏ āĻāĻāĻāĻŋ āϏāĻžāϰāĻŋâ āĻŦāĻž âāĻĒā§āϰāϤāĻŋ āĻāĻžāϏā§āĻāĻŽāĻžāϰ āĻāĻāĻāĻŋ āϏāĻžāϰāĻŋâ)āĨ¤
āĻāύā§āĻĄā§āĻā§āϏ āĻāĻžāĻ āĻāϰ⧠āĻāĻŽāύāĻāĻžāĻŦā§ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§āύâindexed āĻāϞāĻžāĻŽāĻā§āϞ⧠WHERE-āĻ āĻĢāĻžāĻāĻļāύ āĻĻāĻŋā§ā§ āĻāĻŋāϰ⧠āϰāĻžāĻāĻž āύāĻž āĻāĻžāϞāĨ¤ āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ: DATE(created_at) āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻŦāĻĻāϞ⧠āĻāĻžāĻāĻŽāϏā§āĻā§āϝāĻžāĻŽā§āĻĒ āϰā§āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϝāĻžāϤ⧠āĻāύā§āĻĄā§āĻā§āϏ āĻāĻžāĻā§ āϞāĻžāĻā§āĨ¤
āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻāĻāĻāĻžāϰāĻĻā§āϰ āĻļāϰā§āϤāϏāĻžāĻĒā§āĻā§āώ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻĻāĻŋāύâāĻāĻŋāĻ-āϰ āĻāĻĒāϰ āĻāĻā§āϏā§āϏ āĻĻāĻŋāύ, āĻŦā§āϏ āĻā§āĻŦāĻŋāϞ āύāϝāĻŧ, āĻāĻŦāĻ āĻāĻŋāĻāϤ⧠āĻā§āĻŦāϞ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻāϞāĻžāĻŽāĻā§āϞ⧠āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ RLS āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϏā§āĻāĻŋ āĻĒā§āϰāĻā§āϤ āϰā§āϞāĻā§āϞ⧠āĻĻāĻŋāϝāĻŧā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ āĻāĻžāϰāĻŖ āĻāĻŋāĻ āĻ JOIN āĻāĻĄāĻŧāĻŋāϤ āĻšāϞ⧠āĻāĻāϰāĻŖ āĻāĻļā§āĻāϰā§āϝ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ UI āĻŦāĻŋāϞā§āĻĄāĻžāϰ āĻŦāĻž API āϏā§āϤāϰ āĻāĻāĻ āĻŽā§āĻā§āϰāĻŋāĻā§āϰ āĻāύā§āϝ SQL āύāĻāϞ āĻāϰā§, āϤāĻžāĻšāϞ⧠PostgreSQL āĻāĻŋāĻāĻā§ āϏāĻŋāĻāĻā§āϞ āϏā§āϰā§āϏ āĻ āĻĢ āĻā§āϰā§āĻĨ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻāĻŦāĻ āϏā§āĻ āĻāĻŋāĻāĻā§āϞā§āϰ āĻāĻĒāϰ āϏā§āĻā§āϰāĻŋāύ āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤ AppMaster āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻĒāύāĻŋ PostgreSQL āϏāĻāϝā§āĻā§āϤ āĻāϰ⧠āĻāĻŋāĻāĻā§āϞā§āĻā§ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āĻĄā§āĻāĻžāϏā§āĻ āĻšāĻŋāϏā§āĻŦā§ āύāĻŋāϝāĻŧā§ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āĻāĻŦāĻ āĻāϝāĻŧā§āĻŦ/āĻŽā§āĻŦāĻžāĻāϞ āϏā§āĻā§āϰāĻŋāύ āĻā§āύāĻžāϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻā§āϰāĻŋāύ⧠āĻāϝāĻŧā§āύ āĻ āύāĻŋāϝāĻŧāĻŽ āĻĒā§āύāϰāĻžāϝāĻŧ āϞāĻŋāĻāϤ⧠āĻšāĻŦā§ āύāĻžāĨ¤


