Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > นับจำนวนข้อมูลที่ซ้ำกันใน database ต้องเขียนยังไงคะ



 

นับจำนวนข้อมูลที่ซ้ำกันใน database ต้องเขียนยังไงคะ

 



Topic : 125820



โพสกระทู้ ( 59 )
บทความ ( 0 )



สถานะออฟไลน์




นับ

ต้องการนับข้อมูลที่ซ้ำกันในดาต้าเบสค่ะ เช่น src = 2 dst = 1 มีจำนวนกี่ตัว src = 4 dst = 1 มีจำนวนกี่ตัว ประมาณนี้ค่ะ
เเล้วอันไหนซ้ำเยอะสุดเเสดงข้อมูลเป็นอันเเรก อันที่น้อยลงมาก็เเสดงข้อมูลในบรรทัดต่อๆไปค่ะ
สามารถเเปลงข้อมูลนี้ให้โชว์ในรูปเเบบกราฟได้ไหมคะ
ต้องเขียนยังไงคะ รบกวนพี่ๆเเนะนำตัวอย่างด้วยค่ะ รบกวนด้วยนะคะ

ตอนนี้ได้เเต่นับค่ะ ยังไม่สามารถเรียงลำดับจากน้อยไปมากได้


Code (PHP)
	<?php 
				

					$sql = "SELECT src,dst ,count(*) as count FROM user_search group by src , dst ";


					$query = $mysqli->query($sql);
					$result = $query->fetch_object();
					while($result = $query->fetch_object())
					{
					echo $result->src."-".$result->dst."=".$result->count;
					echo "<br>";
					}
					 ?>




Tag : PHP, MySQL, HTML/CSS, Web Service









ประวัติการแก้ไข
2016-12-21 22:34:29
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-12-21 21:40:01 By : gainkullan View : 5354 Reply : 13
 

 

No. 1



โพสกระทู้ ( 279 )
บทความ ( 0 )



สถานะออฟไลน์


ลองใช้แบบนี้ดูนะ ถ้า 2 column คงต้องแยกกันคนละ Query

Code (PHP)
$sql "select 
case 
when src = '1' then count(src) 
when src = '2' then count(src) 
when src = '3' then count(src) 
END AS c_src 
 from user_search
 group by src"







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 08:15:46 By : thesin18598
 


 

No. 2



โพสกระทู้ ( 484 )
บทความ ( 3 )



สถานะออฟไลน์


Code
SELECT scr, count(scr) as total FROM user_search WHERE dst = 1 GROUP BY scr HAVING count(scr) > 1 ORDER BY count(scr) DESC


Code
SELECT scr, count(scr) as total FROM user_search WHERE dst = 1 GROUP BY scr HAVING total > 1 ORDER BY total DESC



ประวัติการแก้ไข
2016-12-22 10:13:47
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 10:09:21 By : fossil31
 

 

No. 3



โพสกระทู้ ( 59 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : thesin18598 เมื่อวันที่ 2016-12-22 08:15:46
รายละเอียดของการตอบ ::
เหมือนอันนี้จะกรุ๊ปเเค่ src ใช่ไหมคะ เเต่ที่ต้องการคืออยากให้มันรวม src กับ dst ที่ตรงกันมารวมกันเเล้วนับค่ะ
อย่าง src 2 dst 1 มี 5 ตัว src 4 dst 1 มี 1 ตัว src 1 dst 4 มี 2 ตัว อยากให้มันเรียงเป็น

src 2 dst 1 =5
src 1 dst 4 = 2
src 4 dst 1 = 1

เเบบนี้ค่ะ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 10:31:06 By : gainkullan
 


 

No. 4



โพสกระทู้ ( 59 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : fossil31 เมื่อวันที่ 2016-12-22 10:09:21
รายละเอียดของการตอบ ::


Code (PHP)
$sql = "SELECT src, count(src) as total FROM user_search WHERE dst = 1 GROUP BY src HAVING total > 1 ORDER BY total DESC";

					

					$query = $mysqli->query($sql);

					$result = $query->fetch_object();

					while($result = $query->fetch_object())
					{
					echo  ''. $result->src ." - ". $result->dst ." = ". $result->total  ;
					echo "<br>";
					


ขึ้นเออเร่อเเบบนี้ค่ะ TT'

Notice: Undefined property: stdClass::$dst in /Applications/XAMPP/xamppfiles/htdocs/vacvans/admin_overview.php on line 53
1 - = 5

ที่ต้องการ อยากให้มันเรียงทุกตัวเลยค่ะ ไม่ใช่เฉพาะที่ dst = 1 ค่ะ

src 2 dst 1 =5
src 1 dst 4 = 2
src 4 dst 1 = 1

เเบบนี้ค่ะ รบกวนด้วยนะคะ




ประวัติการแก้ไข
2016-12-22 10:41:54
2016-12-22 10:44:09
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 10:32:52 By : gainkullan
 


 

No. 5



โพสกระทู้ ( 279 )
บทความ ( 0 )



สถานะออฟไลน์


ลองดูไมรู้ได้ป่าว ยังไม่ได้ test แต่น่าจะประมาณนี้แหละ
Code (PHP)
$sql = "select 
case 
when (src = '2') && (dst = '1') then count(src) 
when (src = '4') && (dst = '1') then count(src) 
when (src = '1') && (dst = '4') then count(src) 
END AS c_src 
 from user_search
 group by src,dst "


*****เพิ่มเติม ลองแบบข้างล่างน่าได้แบบที่ต้องการเลยนะ

Code (PHP)
$sql = "select 
case 
when src = '2' then count(src) 
when src = '4' then count(src) 
when src = '1' then count(src) 
END AS c_src 
 from user_search
 group by src,dst "



ประวัติการแก้ไข
2016-12-22 11:02:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 11:00:58 By : thesin18598
 


 

No. 6



โพสกระทู้ ( 59 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : thesin18598 เมื่อวันที่ 2016-12-22 11:00:58
รายละเอียดของการตอบ ::
จำนวนของ src กับ dst จะเยอะมากค่ะ ไม่น่าจะใส่ case ได้นะคะ

$sql = "SELECT src,dst ,count(*) as count FROM user_search group by src , dst ";

อันนี้มันคิวรี่ข้อมูลออกมาเเล้ว เเต่ยังไม่ครบค่ะ เเล้วก็ถ้าใส่ ORDER BY count DESC ข้อมูลก็ออกมาไม่ครบค่ะ
มันมีวิธีอื่นนอกจากการใส่ case ไหมคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 11:23:23 By : gainkullan
 


 

No. 7



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


Code (SQL)
select * from (
   SELECT src,dst ,count(*) as ct FROM user_search group by src , dst
) as t order by ct

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 11:48:54 By : Chaidhanan
 


 

No. 8



โพสกระทู้ ( 484 )
บทความ ( 3 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : gainkullan เมื่อวันที่ 2016-12-22 10:31:06
รายละเอียดของการตอบ ::
ต้องการนับข้อมูลที่ซ้ำกันในดาต้าเบสค่ะ เช่น src = 2 dst = 1 มีจำนวนกี่ตัว src = 4 dst = 1

ความต้องการตอนแรกเป็นแบบนี้ก็เลยวิเคราะห์ where dst = 1
ถูกต้องไหมครับ

Code
SELECT scr, dst, count(*) as total FROM user_search GROUP BY scr, dst HAVING total > 1 ORDER BY total DESC

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 11:59:55 By : fossil31
 


 

No. 9



โพสกระทู้ ( 59 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-12-22 11:48:54
รายละเอียดของการตอบ ::
ขอบคุณค่ะ ได้เเล้วค่ะ อันนี้เป็นเรียงจากน้อยไปมาก หากต้องเปลีย่นเป็นมากไปน้อยต้องเเก้ตรงไหนคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 12:00:04 By : gainkullan
 


 

No. 10



โพสกระทู้ ( 59 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : fossil31 เมื่อวันที่ 2016-12-22 11:59:55
รายละเอียดของการตอบ ::
ถูกต้องเลยค่ะ เเต่ข้อมูลออกมาไม่ครบตามในดาต้าเบสค่ะ ต้องเเก้ปัญหายังไงหรอคะ


ก

จะเห็นว่าในดาต้าเบสมีข้อมูลทั้งหมด 14 ตัว เเต่ที่เเสดงออกมาคือ 8 ตัวค่ะ

sql = "SELECT src, dst, count(*) as total FROM user_search GROUP BY src, dst HAVING total >= 1 ORDER BY total DESC";


ำ

ถ้าเอา ORDER BY ออกข้อมูลจะออกมาทั้งหมด เลยงงว่าทำไมพอใส่เเล้วถึงออกมาไม่หมดคะ่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 14:14:44 By : gainkullan
 


 

No. 11

Guest


select src, dst, count(*) as total
from table_name
group by src, dst
order by total desc

แบบนี้ออกครบไหม ลองดูนะ
ผมลองทดสอบมันก็ได้นะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 15:32:55 By : limberger
 


 

No. 12

Guest


ตอบความคิดเห็นที่ : 10 เขียนโดย : gainkullan เมื่อวันที่ 2016-12-22 14:14:44
รายละเอียดของการตอบ ::
เอา having total > 1 ออก

เพราะกรองซ้ำกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-22 20:16:32 By : fossil31
 


 

No. 13



โพสกระทู้ ( 59 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : limberger เมื่อวันที่ 2016-12-22 15:32:55
รายละเอียดของการตอบ ::
ยังไม่ได้อยู่ดีค่ะ ข้อมูลหายไปชุดใหญ่ๆชุดนึงเลยค่ะ TT

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-12-23 15:14:49 By : gainkullan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : นับจำนวนข้อมูลที่ซ้ำกันใน database ต้องเขียนยังไงคะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่