Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะคูณคอลัมน์แล้วรวมแถวที่มีระเบียนที่คล้ายกันเช่นชื่อลูกค้าได้อย่างไร


เพื่อให้เข้าใจสิ่งนี้ ให้เราสร้างตารางที่มีฟิลด์เช่น ID, ชื่อลูกค้า, รายการ, ราคา ก่อนอื่นเราจะคูณรายการด้วยราคา หลังจากนั้นจะมีการเพิ่มแถวที่มีระเบียนที่คล้ายกัน เช่น ชื่อลูกค้าเดียวกัน

ให้เราสร้างตารางก่อน:

mysql> สร้างตาราง DemoTable ( CustomerId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, CustomerName varchar(100), CustomerItems int, CustomerPrice int); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.54 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก:

mysql> แทรกลงใน DemoTable(CustomerName,CustomerItems,CustomerPrice)values('Larry',3,450);Query OK, 1 แถวที่ได้รับผลกระทบ (0.24 วินาที)mysql> แทรกลงใน DemoTable(CustomerName,CustomerItems,CustomerPrice)values('Mike ',2,550);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.42 วินาที)mysql> แทรกลงใน DemoTable (CustomerName,CustomerItems,CustomerPrice)values('Larry',4,1000);Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงใน DemoTable(CustomerName,CustomerItems,CustomerPrice)values('Larry',1,100);Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงใน DemoTable(CustomerName,CustomerItems,CustomerPrice)values('Mike',5,200); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.71 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนจากตารางโดยใช้คำสั่ง select:

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

<ก่อนหน้า>+------------+--------------+--------------+-- --------------+| รหัสลูกค้า | ชื่อลูกค้า | รายการลูกค้า | ราคาลูกค้า |+-----------+--------------+--------------+--- --------------+| 1 | แลร์รี่ | 3 | 450 || 2 | ไมค์ | 2 | 550 || 3 | แลร์รี่ | 4 | 1000 || 4 | แลร์รี่ | 1 | 100 || 5 | ไมค์ | 5 | 200 |+-----------+--------------+--------------+--- ------------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อคูณคอลัมน์ (รายการ * ราคา) แล้วรวมแถวที่มีระเบียนที่คล้ายกัน:

mysql> SELECT CustomerName, SUM( CustomerItems* CustomerPrice) AS TOTAL_PRICE FROM DemoTableGROUP BY CustomerName;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

<ก่อนหน้า>+-------------+-------------+| ชื่อลูกค้า | TOTAL_PRICE |+--------------+-------------+| แลร์รี่ | 5450 || ไมค์ | 2100 |+-------------+-----------+2 แถวในชุด (0.05 วินาที)