透過分組和聚合來消除記錄
<p>我有一個臨時表,內容如下:</p>
<pre class="brush:php;toolbar:false;">playlist_id | item_id | passed
-----------------------------------------
123 | 111 | true
123 | 111 | false
123 | 111 | true
123 | 112 | true
456 | 212 | false
789 | 212 | true</pre>
<p>我需要縮減結果,如果對於一個<code>playlist_id, item_id</code>,只有當所有的<code>passed</code>值都為true時,我才需要保留,所以在這個例子中,我想要的結果是:</p>
<pre class="brush:php;toolbar:false;">playlist_id | item_id | passed
-----------------------------------------
123 | 112 | true
789 | 212 | true</pre>
<p>因為第二筆記錄的<code>playlist_id, item_id</code>對有<code>false</code>值,所以整個對應群組都需要刪除。
我嘗試使用<code>group by</code>和<code>having</code>,所以查詢如下:</p>
<pre class="brush:php;toolbar:false;">select
playlist,
item_id
from
temp table
group by
playlist_id,
item_id
having passed = true</pre>
<p>但這給我回傳了所有至少有一個<code>true</code>值的對。 </p>
<p>我該如何消除所有<code>playlist_id, item_id</code>記錄,如果其中任何一個布林類型的<code>passed</code>字段為false呢? </p>
<p>謝謝! </p>