คำนวณค่าที่ซ้ำกันของทุกค่า [ซ้ำกัน]

Jan 12 2021

ฉันต้องการเพิ่มคอลัมน์ลงในตารางของฉันพร้อมกับจำนวน. ดังนั้นหากค่าไม่ซ้ำกันค่าคอลัมน์ควรเป็น 1 แต่ถ้ามีหลายสำเนาฉันต้องการค่าที่แตกต่างสำหรับทุกแถว (1,2 ... )

ตัวอย่างเช่นฐานข้อมูลคือ postgres

id มูลค่า นับ
1 1
2 2
3 1
4 2
5 3
6 1

ตัวอย่างฐานข้อมูล https://dbfiddle.uk/?rdbms=postgres_10&fiddle=0e7132f3f094bd93b390ccae2e811696

คำตอบ

5 a_horse_with_no_name Jan 12 2021 at 16:49

สามารถทำได้โดยใช้ฟังก์ชันหน้าต่าง

select id, value, count(*) over (partition by value order by id) 
from the_table
order by id, value;