Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL để kiểm tra khi các cặp không khớp

Một cách là sử dụng exists vị từ với một truy vấn con tương quan để kiểm tra xem biểu tượng cụ thể có nhiều hơn một giá hay không.:

select * from table1 t
where exists (
  select 1
  from table1
  where symbol = t.symbol
  and price <> t.price);

Fiddle SQL mẫu

Điều này sẽ trả về:

|                   Date | Type |    Symbol |  Price |
|------------------------|------|-----------|--------|
| June, 30 1995 02:00:00 | gaus | 313586U72 | 109.25 |
| June, 30 1995 02:00:00 | gbus | 313586U72 | 108.94 |
| June, 30 1995 02:00:00 | agus |       SRR |  10.25 |
| June, 30 1995 02:00:00 | lcus |       SRR |   0.45 |
| July, 01 1995 02:00:00 | gaus | 313586U72 | 109.25 |
| July, 01 1995 02:00:00 | gbus | 313586U72 | 108.94 |

Chỉnh sửa:được truyền cảm hứng bởi Gordon Linoffs câu trả lời thông minh khác có thể là sử dụng avg() như một chức năng được cửa sổ:

select Date, Type, Symbol, Price  
from (
  select Date, Type, Symbol, Price, avg = avg(price) over (partition by symbol) 
  from table1) a
where avg <> price;

Chỉnh sửa:bằng séc để đảm bảo chỉ trả lại các bản sao vào cùng một ngày: http:/ /www.sqlfiddle.com/#!6/29d67/1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump tương đương cho SQL Server

  2. Tự động thực thi nhiều tập lệnh SQL Server 2012 theo thứ tự cụ thể

  3. Tại sao truy vấn con bên trong nối chuỗi đệ quy luôn trả về NULL?

  4. Kiểm tra trạng thái của tất cả thư cơ sở dữ liệu trong SQL Server (T-SQL)

  5. Phát hiện các ô trong cột gây ra lỗi trong SQL