คำถามติดแท็ก sql

Structured Query Language (SQL) เป็นภาษาสำหรับการสืบค้นฐานข้อมูล คำถามควรมีตัวอย่างรหัสโครงสร้างตารางข้อมูลตัวอย่างและแท็กสำหรับการใช้งาน DBMS (เช่น MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 และอื่น ๆ ) หากคำถามของคุณเกี่ยวข้องกับ DBMS เฉพาะ (ใช้ส่วนขยาย / คุณลักษณะเฉพาะ) ให้ใช้แท็กของ DBMS นั้นแทน คำตอบของคำถามที่ติดแท็กด้วย SQL ควรใช้ SQL มาตรฐาน ISO / IEC

30
วิธีง่ายๆในการคำนวณค่ามัธยฐานด้วย MySQL
อะไรคือวิธีที่ง่ายที่สุด (และหวังว่าจะไม่ช้าเกินไป) ในการคำนวณค่ามัธยฐานด้วย MySQL? ฉันใช้AVG(x)เพื่อหาค่าเฉลี่ย แต่ฉันมีเวลายากที่จะหาวิธีง่ายๆในการคำนวณค่ามัธยฐาน สำหรับตอนนี้ฉันกลับแถวทั้งหมดไปที่ PHP ทำการเรียงลำดับแล้วเลือกแถวกลาง แต่แน่นอนว่าต้องมีวิธีการง่ายๆในแบบสอบถาม MySQL เดียว ข้อมูลตัวอย่าง: id | val -------- 1 4 2 7 3 2 4 2 5 9 6 8 7 3 เรียงลำดับตามการvalให้2 2 3 4 7 8 9ดังนั้นค่ามัธยฐานควรจะเป็น4เมื่อเทียบกับSELECT AVG(val)ที่ 5==
207 sql  mysql  statistics  median 


22
SQL select join: เป็นไปได้หรือไม่ที่จะนำหน้าทุกคอลัมน์เป็น 'คำนำหน้า.'?
ฉันสงสัยว่านี่เป็นไปได้ใน SQL หรือไม่ สมมติว่าคุณมีสองตาราง A และ B และคุณเลือกบนโต๊ะ A และเข้าร่วมในตาราง B: SELECT a.*, b.* FROM TABLE_A a JOIN TABLE_B b USING (some_id); หากตาราง A มีคอลัมน์ 'a_id', 'name' และ 'some_id' และตาราง B มี 'b_id', 'name' และ 'some_id' แบบสอบถามจะส่งคืนคอลัมน์ 'a_id', 'name', 'some_id ',' b_id ',' ชื่อ ',' some_id ' มีวิธีใดบ้างที่จะนำหน้าชื่อคอลัมน์ของตาราง B โดยไม่แสดงรายการทุกคอลัมน์แยกกันหรือไม่ …
206 sql  join 

7
ฉันจะรันโพรซีเดอร์ที่เก็บหนึ่งครั้งสำหรับแต่ละแถวที่ส่งคืนโดยเคียวรีได้อย่างไร
ฉันมีขั้นตอนการจัดเก็บที่เปลี่ยนแปลงข้อมูลผู้ใช้ด้วยวิธีใดวิธีหนึ่ง ฉันผ่านมัน user_id และมันก็เป็นอย่างนั้น ฉันต้องการเรียกใช้แบบสอบถามบนโต๊ะและสำหรับแต่ละ user_id ฉันพบว่าเรียกใช้กระบวนงานที่เก็บไว้หนึ่งครั้งใน user_id นั้น ฉันจะเขียนแบบสอบถามสำหรับสิ่งนี้ได้อย่างไร

4
มอบสิทธิ์ทั้งหมดให้กับผู้ใช้บนฐานข้อมูล
ฉันต้องการให้สิทธิ์แก่ผู้ใช้ทั้งหมดในฐานข้อมูลโดยไม่ต้องเป็นผู้ดูแลระบบ เหตุผลที่ฉันต้องการทำนั่นคือในขณะนี้ DEV และ PROD เป็นฐานข้อมูลที่แตกต่างกันในคลัสเตอร์เดียวกันดังนั้นฉันไม่ต้องการให้ผู้ใช้สามารถเปลี่ยนวัตถุการผลิต แต่ต้องสามารถเปลี่ยนวัตถุบน DEV ฉันเหนื่อย: grant ALL on database MY_DB to group MY_GROUP; แต่ดูเหมือนจะไม่ได้รับอนุญาตใด ๆ จากนั้นฉันก็ลอง: grant all privileges on schema MY_SCHEMA to group MY_GROUP; และดูเหมือนว่าจะให้สิทธิ์ฉันในการสร้างวัตถุ แต่ไม่ต้องสอบถาม \ ลบวัตถุในสคีมานั้นที่เป็นของผู้ใช้รายอื่น ฉันสามารถดำเนินการต่อโดยให้สิทธิ์การใช้งานกับผู้ใช้บน MY_SCHEMA แต่จากนั้นจะบ่นเกี่ยวกับการไม่มีสิทธิ์บนโต๊ะ ... ดังนั้นฉันเดาคำถามของฉันคือ: มีวิธีง่าย ๆ ให้สิทธิ์ทั้งหมดแก่ผู้ใช้ในฐานข้อมูลหรือไม่ ฉันกำลังทำงานกับ PostgreSQL 8.1.23



11
ใน SQL ความแตกต่างระหว่าง count (คอลัมน์) และ count (*) คืออะไร
ฉันมีคำถามต่อไปนี้: select column_name, count(column_name) from table group by column_name having count(column_name) > 1; หากฉันแทนที่การโทรทั้งหมดไปที่count(column_name)จะเป็นcount(*)อย่างไร คำถามนี้ได้รับแรงบันดาลใจจากฉันจะค้นหาค่าที่ซ้ำกันในตารางใน Oracle ได้อย่างไร . เพื่อชี้แจงคำตอบที่ยอมรับได้ (และอาจเป็นคำถามของฉัน) การแทนที่count(column_name)ด้วยcount(*)จะส่งคืนแถวพิเศษในผลลัพธ์ที่มีค่า a nullและจำนวนของnullค่าในคอลัมน์
205 sql 

8
แสดงรายการตารางทั้งหมดใน postgresql information_schema
เป็นวิธีที่ดีที่สุดในการแสดงรายการตารางทั้งหมดภายใน Post_signema information_schema ของอะไร? เพื่อชี้แจง: ฉันกำลังทำงานกับฐานข้อมูลเปล่า (ฉันไม่ได้เพิ่มตารางของตัวเอง) แต่ฉันต้องการเห็นทุกตารางในโครงสร้าง information_schema

14
SQL: IF clause ภายใน WHERE clause
เป็นไปได้ไหมที่จะใช้ประโยคIFภายในWHERE clause ใน MS SQL? ตัวอย่าง: WHERE IF IsNumeric(@OrderNumber) = 1 OrderNumber = @OrderNumber ELSE OrderNumber LIKE '%' + @OrderNumber + '%'
203 sql  sql-server  tsql 

2
ปรับ PostgreSQL ให้เหมาะสมเพื่อการทดสอบที่รวดเร็ว
ฉันเปลี่ยนมาใช้ PostgreSQL จาก SQLite สำหรับแอปพลิเคชั่น Rails ทั่วไป ปัญหาคือรายละเอียดการรันช้าลงเมื่อใช้ PG บน SQLite จะเอา ~ 34 วินาทีบน PG มัน ~ 76 วินาทีซึ่งเป็นมากกว่า 2x ช้าลง ดังนั้นตอนนี้ฉันต้องการใช้เทคนิคบางอย่างเพื่อทำให้ประสิทธิภาพของ specs เทียบกับ SQLiteโดยไม่มีการแก้ไขโค้ด (โดยเฉพาะการตั้งค่าตัวเลือกการเชื่อมต่อซึ่งอาจเป็นไปไม่ได้) สิ่งที่ชัดเจนจากหัวของฉันคือ: RAM Disk (การตั้งค่าที่ดีกับ RSpec บน OSX จะดีสำหรับการดู) ตารางที่ไม่ถูกบล็อก (สามารถนำไปใช้กับฐานข้อมูลทั้งหมดได้หรือไม่ดังนั้นฉันจึงไม่ได้เปลี่ยนสคริปต์ทั้งหมด) อย่างที่คุณอาจจะเข้าใจว่าฉันไม่สนใจเกี่ยวกับความน่าเชื่อถือและส่วนที่เหลือ (DB เป็นเพียงการทิ้งสิ่งที่นี่) ฉันต้องการที่จะได้รับส่วนใหญ่ของ PG และทำให้มันเป็นไปอย่างรวดเร็วในขณะที่มันอาจจะสามารถ คำตอบที่ดีที่สุดจะอธิบายถึงเทคนิคในการทำเช่นนั้นการตั้งค่าและข้อเสียของเทคนิคเหล่านั้น อัปเดต: fsync = off + full_page_writes …

7
แบบสอบถาม PIVOT แบบไดนามิกของ SQL Server
ฉันได้รับมอบหมายให้คิดวิธีแปลข้อมูลต่อไปนี้: date category amount 1/1/2012 ABC 1000.00 2/1/2012 DEF 500.00 2/1/2012 GHI 800.00 2/10/2012 DEF 700.00 3/1/2012 ABC 1100.00 ลงในต่อไปนี้: date ABC DEF GHI 1/1/2012 1000.00 2/1/2012 500.00 2/1/2012 800.00 2/10/2012 700.00 3/1/2012 1100.00 จุดว่างสามารถเป็น NULL หรือช่องว่างก็ได้และหมวดหมู่จะต้องเป็นแบบไดนามิก ข้อแม้ที่เป็นไปได้อีกประการหนึ่งสำหรับเรื่องนี้คือเราจะเรียกใช้แบบสอบถามในความจุที่ จำกัด ซึ่งหมายความว่าตารางชั่วคราวหมด ฉันพยายามค้นคว้าและลงจอดPIVOTแต่เนื่องจากฉันไม่เคยใช้มันมาก่อนที่ฉันจะไม่เข้าใจจริงๆแม้ว่าฉันจะพยายามหาวิธีที่ดีที่สุดก็ตาม ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม
202 sql  sql-server  tsql  pivot 

7
SQL มี VS ที่ไหน
ฉันมีสองตารางต่อไปนี้: 1. Lecturers (LectID, Fname, Lname, degree). 2. Lecturers_Specialization (LectID, Expertise). ฉันต้องการหาอาจารย์ที่มีความเชี่ยวชาญมากที่สุด เมื่อฉันลองทำสิ่งนี้มันไม่ทำงาน: SELECT L.LectID, Fname, Lname FROM Lecturers L, Lecturers_Specialization S WHERE L.LectID = S.LectID AND COUNT(S.Expertise) >= ALL (SELECT COUNT(Expertise) FROM Lecturers_Specialization GROUP BY LectID); แต่เมื่อฉันลองมันใช้งานได้: SELECT L.LectID, Fname, Lname FROM Lecturers L, Lecturers_Specialization S WHERE L.LectID = …
202 sql  where  having 

7
วิธีตรวจสอบไม่ว่างเปล่าและไม่ใช่สตริงว่างในเซิร์ฟเวอร์ SQL?
วิธีการที่เราสามารถตรวจสอบใน SQL Server WHEREสภาพไม่ว่าจะเป็นคอลัมน์ที่ไม่ได้เป็นโมฆะและไม่ได้เป็นสตริงที่ว่างเปล่า ( '')?
202 sql  sql-server 

6
SQL clause“ GROUP BY 1” หมายถึงอะไร?
มีคนส่งมาให้ผมแบบสอบถาม SQL ที่ข้อประกอบด้วยคำสั่ง:GROUP BYGROUP BY 1 นี่ต้องเป็นตัวพิมพ์ผิดใช่มั้ย ไม่มีคอลัมน์ที่ให้นามแฝง 1. สิ่งนี้หมายความว่าอย่างไร ฉันคิดถูกหรือเปล่าว่านี่ต้องเป็นตัวพิมพ์ผิดใช่ไหม
202 mysql  sql  group-by 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.