私は支払いに基づいて行を含むmySQLテーブルを持っています。重複したフィールドを持つ結果を返すmySQLクエリ?
各行には電子メールアドレスが含まれているため、mySQLとPHPを使用してクエリを作成し、このテーブルに2人以上のエントリがいくつあるか調べます。
これは基本的に、2回以上のパッケージを購入したり、契約を更新したりして、2回以上支払いを行ったかどうかを知ることです。
これを行うにはどうすればよいでしょうか?
私は支払いに基づいて行を含むmySQLテーブルを持っています。重複したフィールドを持つ結果を返すmySQLクエリ?
各行には電子メールアドレスが含まれているため、mySQLとPHPを使用してクエリを作成し、このテーブルに2人以上のエントリがいくつあるか調べます。
これは基本的に、2回以上のパッケージを購入したり、契約を更新したりして、2回以上支払いを行ったかどうかを知ることです。
これを行うにはどうすればよいでしょうか?
select distinct email, count(*) as rowcount
from datatable
group by email
having rowcount > 1
編集:私は私の頭の上から上記を書きました。オラクルのクイックテストは、構文が少し間違っていると
select distinct email, count(*) as rowcount
from datatable
group by email
having count(*) > 1
をする必要があります。しかし、これはOracleだけが持つ句でエイリアス列を許可していないかもしれないことを示しています。私は、mySQLが許すものがわからない。
DISTINCT句は必要ありません。 – Furgas
はい、あなたはかなり正しいですが、私はテストでそれをしませんでしたが、何らかの理由で私が答えに入力したときに、私はそれを入れました! –
SELECT email, COUNT(email) as c_email FROM emails_table WHERE c_email > 1;
' WHERE'節で 'c_email'を使用することはできません。集約または列エイリアスをフィルタリングするには、HAVING c_email> 1' –
を使用する必要があります。これには集計句もありません。GROUP BY –
あなたは何を試しましたか? Code please – Rikesh
'unique_id、count(*)from unique_id;を選択してください。 ' –