Veritabanındaki 2 alan için farklı SQL


84

Bir veritabanı tablosundaki 2 farklı alanın farklı kombinasyonunu elde edebilir misiniz? eğer öyleyse, SQL örneği verebilir misiniz?

Yanıtlar:


129

Peki ya basitçe:

select distinct c1, c2 from t

veya

select c1, c2, count(*)
from t
group by c1, c2

Verilere bağlı olarak, gruplama
ölçütü

5
Operand should contain 1 column(s)Hata görenlerin sorunu, muhtemelen yapıyor select distinct(c1, c2) from tolmanız ve burada parantezlere izin verilmemesidir. Ben böyle geldim.
BookOfGreg

16

Yalnızca iki alandan farklı değerler istiyorsanız ve bunlarla birlikte başka alanlar döndürürseniz, diğer alanların üzerlerinde bir tür toplama (toplam, minimum, maksimum vb.) Olması ve farklı olmasını istediğiniz iki sütun görünmesi gerekir. maddeye göre grup. Aksi takdirde, Decker'in dediği gibi.


7

SQL'in altında kullanılan iki sütun ile farklı sonuçlar elde edebilirsiniz:

SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE

5

Yine de yalnızca bir sütuna göre gruplamak istiyorsanız (istediğim gibi) sorguyu iç içe yerleştirebilirsiniz:

select c1, count(*) from (select distinct c1, c2 from t) group by c1

3

Aptal düşüncemi paylaş:

Sözdizimi olabilir böylece Belki, sadece c1 üzerinde değil c2'den ayrı seçebilir select ([distinct] col)+nerede distincther sütun için bir eleme olduğunu.

Ancak düşündükten sonra , tek bir sütunda farklı olanın saçma olduğunu görüyorum . Şu ilişkiyi ele alalım:

   | A | B
__________
  1| 1 | 2
  2| 1 | 1

Biz ise select (distinct A), B, o zaman doğru ne Biçin A = 1?

Bu nedenle, distinctbir statement.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.